Re: [stack] What does "concatenative" actually mean?
William Tanksley <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <1236267510.32020.3698.camel@tanksley> |
spir wrote: > good even without CS background. There may be some improvements: eg > now I cannot make any difference between "concatenative" and > "compositional" ;-) The term Compositional has been used before to describe concatenative languages. By the FAQ's definition, all concatenative languages are compositional, but not vice versa (Haskell has a subset that's compositional by that definition, but isn't concatenative because the composition operator is explicit). There are three reasons why I don't recommend using the term compositional outside of pedagogy. First, it's a very theoretical and pure definition: it requires that the ONLY operation be composition. There's not much you can sneak past that. We've since developed definitions of concatenativity that seem to be a lot more flexible, allowing us to have a concept of pure versus impure concatenative languages. This also implies that we can define a concatenative language that's not compositional. Second, there are no studied benefits to compositional languages that aren't also present in concatenative languages, and concatenative languages have the huge benefit of token associativity that's not present in compositional languages with explicit composition operators. Third, the term is already in use: a compositional language is one whose facilities are mainly intended to help the programmer tie applications written in other languages together. > denis -Wm