Treffer: Backtracking, interleaving, and terminating monad transformers

Title:
Backtracking, interleaving, and terminating monad transformers
Source:
Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming (ICFP'05), September 26-28, 2005 - Tallinn, EstoniaACM SIGPLAN notices. 40(9):192-203
Publisher Information:
Broadway, NY: ACM, 2005.
Publication Year:
2005
Physical Description:
print, 31 ref
Original Material:
INIST-CNRS
Document Type:
Konferenz Conference Paper
File Description:
text
Language:
English
Author Affiliations:
FNMOC
Harvard University, United States
Indiana University, United States
ISSN:
1523-2867
Rights:
Copyright 2005 INIST-CNRS
CC BY 4.0
Sauf mention contraire ci-dessus, le contenu de cette notice bibliographique peut être utilisé dans le cadre d’une licence CC BY 4.0 Inist-CNRS / Unless otherwise stated above, the content of this bibliographic record may be used under a CC BY 4.0 licence by Inist-CNRS / A menos que se haya señalado antes, el contenido de este registro bibliográfico puede ser utilizado al amparo de una licencia CC BY 4.0 Inist-CNRS
Notes:
Computer science; theoretical automation; systems
Accession Number:
edscal.17157861
Database:
PASCAL Archive

Weitere Informationen

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 these additional constructs can be generically and monadically realized using a single primitive msplit. We present two implementations of the library: one using success and failure continuations; and the other using control operators for manipulating delimited continuations.