Backtracking, interleaving, and terminating monad transformers: (functional pearl)
@inproceedings{Kiselyov2005BacktrackingIA, title={Backtracking, interleaving, and terminating monad transformers: (functional pearl)}, author={O. Kiselyov and C. Shan and D. Friedman and A. Sabry}, booktitle={ICFP '05}, year={2005} }
We design and implement a library for adding backtracking computations to any Haskell monad. Inspired by logic programming, our library provides, in addition to the operations required by the MonadPlus interface, constructs for fair disjunctions, fair conjunctions, conditionals, pruning, and an expressive top-level interface. Implementing these additional constructs is easy in models of backtracking based on streams, but not known to be possible in continuation-based models. We show that all… CONTINUE READING
Figures and Topics from this paper
Figures
107 Citations
Eilenberg-Moore Monoids and Backtracking Monad Transformers
- Mathematics, Computer Science
- MSFP
- 2016
- 8
- PDF
Heuristics Entwined with Handlers Combined: From Functional Specification to Logic Programming Implementation
- Computer Science
- PPDP '14
- 2014
- 9
- PDF
Pure, Declarative, and Constructive Arithmetic Relations (Declarative Pearl)
- Computer Science
- FLOPS
- 2008
- 23
- PDF
References
SHOWING 1-8 OF 8 REFERENCES
A MonadPlusT with fair operations and pruning. http://www.haskell.org/pipermail/haskell/2005-June/ 016037.html
- 2005