Combinator library
Appearance
![]() | This article needs attention from an expert in Programming languages. Please add a reason or a talk parameter to this template to explain the issue with the article. |
A combinator library is a software library which implements combinators for a functional programming language; "the key idea is this: a combinator library offers functions (the combinators) that combine functions together to make bigger functions"[1]. These kinds of libaries are particularly useful for allowing 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.
See also
References
- ^ pg 35 of [http://research.microsoft.com/~simonpj/papers/history-of-haskell/index.htm "History of Haskell"
External links
- "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
(help)|title=
- 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
(help); Unknown parameter|title=
|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
(help); Unknown parameter|title=
|booktitle=
ignored (help)CS1 maint: multiple names: editors list (link)