Notions of computation and monads
Information and Computation
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
Composing monads using coproducts
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
Fine Control of Demand in Haskell
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
A Modular Approach to Denotational Semantics
Proceedings of the 4th International Conference on Category Theory and Computer Science
Abstract versus concrete computation on metric partial algebras
ACM Transactions on Computational Logic (TOCL)
Backtracking, interleaving, and terminating monad transformers: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
The logic of demand in Haskell
Journal of Functional Programming
Gaussian elimination: a case study in efficient genericity with MetaOCaml
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Hi-index | 0.00 |
The pattern matching calculi introduced by the first author are a refinement of the λ-calculus that integrates mechanisms appropriate for fine-grained modelling of non-strict pattern matching. While related work in the literature only uses a single monad, typically Maybe, for matchings, we present an axiomatic approach to semantics of these pattern matching calculi using two monads, one for expressions and one for matchings. Although these two monads only need to be relatively lightly coupled, this semantics implies soundness of all core PMC rules, and is a useful tool for exploration of the design space for pattern matching calculi. Using lifting and Maybe monads, we obtain standard Haskell semantics, and by adding another level of Maybe to both, we obtain a denotational semantics of the “matching failure as exceptions” approach of Erwig and Peyton Jones. Using list-like monads opens up interesting extensions in the direction of functional-logic programming.