[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.