ACM Home Page
Please provide us with feedback. Feedback
Deriving backtracking monad transformers
Full text PdfPdf (492 KB)
Source International Conference on Functional Programming archive
Proceedings of the fifth ACM SIGPLAN international conference on Functional programming table of contents
Pages: 186 - 197  
Year of Publication: 2000
ISBN:1-58113-202-6
Also published in ...
Author
Ralf Hinze  Institut Für Informatik III, Universität Bonn, Römerstraβe 164, 53117 Bonn, Germany
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 45,   Citation Count: 11
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/351240.351258
What is a DOI?

ABSTRACT

In a paper about pretty printing J. Hughes introduced two fundamental techniques for deriving programs from their specification, where a specification consists of a signature and properties that the operations of the signature are required to satisfy. Briefly, the first technique, the term implementation, represents the operations by terms and works by defining a mapping from operations to observations --- this mapping can be seen as defining a simple interpreter. The second, the context-passing implementation, represents operations as functions from their calling context to observations. We apply both techniques to derive a backtracking monad transformer that adds backtracking to an arbitrary monad. In addition to the usual backtracking operations --- failure and nondeterministic choice --- the prolog cut and an operation for delimiting the effect of a cut are supported.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
 
4
 
5
R. Hinze. Prolog's control constructs in a functional setting | Axioms and implementation. International Journal of Foundations of Computer Science, 2000. To appear.
 
6
 
7
M. P. Jones and L. Duponcheel. Composing monads. Technical Report YALEU/DCS/RR-1004, Department of Computer Science, Yale University, December 1993.
 
8
K. L?aufer and M. Odersky. An extension of ML with first-class abstract types. In Proceedings of the 1992 ACM Workshop on ML and its Applications, San Francisco, California, pages 78-91. ACM-Press, 1992.
9
 
10
E. Meijer. Calculating Compilers. PhD thesis, Nijmegen University, 1992.
 
11
E. Moggi. An abstract view of programming languages. Technical Report ECS-LFCS-90-113, Department of Computer Science, Edinburgh University, 1990.
 
12
 
13
S. Peyton Jones and J. Hughes, editors. Haskell 98 | A Non-strict, Purely Functional Language, February 1999. Available from http://www.haskell.org/definition/.
 
14
15
16
 
17

CITED BY  11