A Practical Combinator Library
d5f1e630 — Zach Smith 28 days ago
Add erl/ex
254305af — Zach Smith a month ago
List supported languages
942e1bdb — Zach Smith a month ago
add license


browse  log 



You can also use your local clone with git send-email.

#A Practical Combinator Library

This project consists of a series of libraries, each for a different programming language, each implementing the set of higher-order functions described in the article Combinatory Programming. Each library's function inventory should have the same naming scheme, signatures, and behaviour, modulo the conventions and syntax of the language in which it's implemented.

The purpose of this project is to provide a straightforward and practical API for programming in a tacit (or point-free) style, particularly in those languages that do not have very much support for tacit programming baked into the syntax of the language itself.

Taking this idea further, this project proposes that the most essential nature of tacit style is therefore not inherent to any particular language, and also that the most essential benefit of tacit style is not concision, saving on characters typed, or anything else other than the reduction of conceptual inventory. Tacit style at its most basic, stripped of any baggage inherited from its academic precursors or from those languages which lend themselves most naturally to it, allows the programmer to omit names from their programs. Thi project proposes that by reducing the number of names that a program must refer to, the programmer reduces the number of conceptual entities that they have to accommodate in their mind; and that this in turn results in programs which are easier to understand and simpler to manipulate.

#Supported Languages