Jump to content

Combinator library

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Gwern (talk | contribs) at 22:52, 15 December 2006 (External links: «+"*john95the, author = 'Hughes, John', title = '{T}he {D}esign of a {P}retty-printing {L}ibrary', booktitle = 'Advanced Functional Programming', volume = '925', publisher = 'Springer Verlag', editor = 'Jeuring, J. and Meijer, E). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A combinator library is a software library which implements a parser for combinatorsfor a functional programming language; this allows domain-specific programming languages to be easily embedded into a general purpose language by defining a few primitive functions for the given domain and turning over the task of expanding higher-level constructs to the general language. An example would be the monadic Parsec parser[1] for Haskell. The library approach allows the parsers to be first-class citizens of the language.

  • "Designing and Using Combinators: The Essence of Functional Programming"
  • Daan Leijen and Erik Meijer (2001). "Parsec: Direct Style Monadic Parser Combinators for the Real World". Department of Computer Science, Universiteit Utrecht. UU-CS-2001-27. {{cite book}}: Cite has empty unknown parameter: |1= (help); External link in |title= (help)
  • Daan Leijen and Erik Meijer (1999,). "Domain Specific Embedded Compilers". Austin, Texas. pp. 109–122. {{cite book}}: Check date values in: |year= (help); External link in |title= (help); Unknown parameter |booktitle= ignored (help); Unknown parameter |month= ignored (help); Unknown parameter |other= ignored (|others= suggested) (help)CS1 maint: extra punctuation (link) CS1 maint: year (link)
  • Hughes, John (1995). Jeuring, J. and Meijer, E. (ed.). "The Design of a Pretty-printing Library". Vol. 925. Springer Verlag. {{cite book}}: External link in |title= (help); Unknown parameter |booktitle= ignored (help)CS1 maint: multiple names: editors list (link)