Search code examples
lambdacombinatorstacit-programmingconcatenative-language

Role of combinators in concatenative/tacit programming languages


What exact role do higher-order combinators (or function producers) hold in concatenative and tacit programming?

Is there another way to implement a concatenative programming language rather than directly manipulating the stack?

How tight is the relation between the combinators mentioned and Schonfinkel's combinatory logic?


Solution

  • In my answer to "Explain Concatenative languages to me like I’m an 8 year old" I argued that it is not useful to use the word "concatenative" to describe programming languages. This area appears to be a private playground for Manfred von Thun. There is no real definition of what constitutes a concatenative language, and there is no mature theory underlying the idea of a concatenative language. Because the concept is not really defined, it is impossible to provide a definitive explanation of the role of combinators.

    You might prefer to spend your time studying more well-established topics such as combinatory logic, SK combinators, lambda calculus, and graph-reduction machines. If you are interested in point-free programming from a more pragmatic perspective, APL, Forth, and PostScript are all well worth studying.