Combinator library
{{Expert needed|programming languages|talk=Vague|date=November 2008}}
A combinator library is a software library which implements combinatory logic as 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".[http://research.microsoft.com/~simonpj/papers/history-of-haskell/ "History of Haskell"], pg 35. These kinds of libraries are particularly useful for allowing domain-specific 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 for Haskell. The library approach allows the parsers to be first-class citizens of the language.
See also
- Run-time system
- QuickCheck
- Point-free style programming
References
{{Reflist}}
External links
- {{cite book
|last1=Leijen |first1=Daan |last2=Meijer |first2=Erik
|year=2001
|title=Parsec: Direct Style Monadic Parser Combinators for the Real World
|institution=Department of Computer Science, Universiteit Utrecht
|id=UU-CS-2001-27
|hdl=1874/2535
}}
- {{cite book
|last1=Leijen |first1=Daan |last2=Meijer |first2=Erik
|date=October 1999
|chapter=Domain Specific Embedded Compilers
|url=https://www.usenix.org/legacy/events/dsl99/full_papers/leijen/leijen.pdf
|title=2nd USENIX Conference on Domain Specific Languages (DSL'99)
|location=Austin, Texas
|pages=109–122
}}
- {{cite book
|last1=Hughes |first1=John
|year=1995
|editor1-last=Jeuring |editor1-first=J.
|editor2-last=Meijer |editor2-first=E.
|chapter=The Design of a Pretty-printing Library
|url=http://citeseer.ist.psu.edu/hughes95design.html
|title=Advanced Functional Programming
|volume=925
|publisher=Springer Verlag
|access-date=2006-12-15
|archive-url=https://web.archive.org/web/20080406151131/http://citeseer.ist.psu.edu/hughes95design.html
|archive-date=2008-04-06
|url-status=dead
}}
Category:Application programming interfaces
{{Compu-library-stub}}