Jump to content

Combinator library

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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".[1] 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

References

  • Leijen, Daan; Meijer, Erik (2001). Parsec: Direct Style Monadic Parser Combinators for the Real World. Department of Computer Science, Universiteit Utrecht. hdl:1874/2535. UU-CS-2001-27.
  • Leijen, Daan; Meijer, Erik (October 1999). "Domain Specific Embedded Compilers". 2nd USENIX Conference on Domain Specific Languages (DSL'99) (PDF). Austin, Texas. pp. 109–122.{{cite book}}: CS1 maint: location missing publisher (link)
  • Hughes, John (1995). "The Design of a Pretty-printing Library". In Jeuring, J.; Meijer, E. (eds.). Advanced Functional Programming. Vol. 925. Springer Verlag. Archived from the original on 2008-04-06. Retrieved 2006-12-15.