A combinator library is a
software library
In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and sub ...
which implements
combinators for a
functional programming language
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that ...
; "the key idea is this: a combinator library offers functions (the combinators) that combine functions together to make bigger functions".
[pg 35 o]
"History of Haskell"
/ref> These kinds of libraries 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 parserbr>
for Haskell (programming language), Haskell. The library approach allows the parsers to be first-class citizens of the language.
See also
* Run-time system
In computer programming, a runtime system or runtime environment is a sub-system that exists both in the computer where a program is created, as well as in the computers where the program is intended to be run. The name comes from the compile t ...
* QuickCheck
QuickCheck is a software library, specifically a combinator library, originally written in the programming language Haskell, designed to assist in software testing by generating test cases for test suites – an approach known as property ...
* Point-free style programming
References
External links
*
*
*
Application programming interfaces
{{compu-library-stub