[stack] language hierarchy
John Nowak <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
Going along with the discussion trying to pin down a definition of concatenative and/or develop a new term, I propose this hierarchy with the hope that it might be partially correct and/or useful: A functional programming language is one that treats computation as the evaluation of mathematical functions and avoids state and mutable data. Examples: Scheme, ML, Haskell A function-level programming language is a variable-free functional programming language in which all functions are unary and new functions are created in terms of existing functions through the use of functional forms. Examples: FP, FL, APL (?), J (?) A compositional programming language is a function-level programming language in which composition is the only functional form. Examples: Joy, Cat, etc A concatenative programming language is a compositional programming language in which the concatenation of functions denotes composition. Examples: Joy, Cat, etc - - - Side note: Given that the term compositional programming is taken, what about calling them composable programming languages? You'd have the following definition (roughly): "A programming language is composable if it is a variable-free, all functions are unary, and new functions are created only by composing existing functions." In addition to it not yet having a meaning, I find the term "composable programming language" somewhat more playful and to-the- point. It also highlights the composable/factorable nature of such programs nicely. - John