An introduction to concatenative programming
This page is a work in progress. Here be dragons.
Most programming languages are applicative, where things are evaluated by applying functions to arguments.
In concatenative programming languages, things are evaluated by composing functions together, all operating on a shared data structure (commonly a stack) passed around from function to function, and composition is expressed as the concatenation of programs.