Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An introduction to functional programming
An introduction to functional programming
A new look at pattern matching in abstract data types
Proceedings of the first ACM SIGPLAN international conference on Functional programming
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
When is a functional program not a functional program?
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Optimising parallel pattern-matching by source-level program transformation
ACSC '05 Proceedings of the Twenty-eighth Australasian conference on Computer Science - Volume 38
Hi-index | 0.00 |
Parallel pattern-matching offers the maximum laziness for programs written in lazy functional languages. Function arguments are evaluated concurrently and all arguments are given equal precedence, so functions can return results whenever possible in the presence of errors or infinite computations. We describe the motivation for and the semantics of parallel pattern-matching. We also describe the first available implementation of Haskell with parallel pattern-matching. The implementation works via a source-to-source translation into Concurrent Haskell, using the existing facilities of GHC to provide the required concurrency. Various transformation techniques are outlined which can help to reduce the degree and cost of the concurrency required to satisfy the semantics.