Re: [stack] What does "concatenative" actually mean?
William Tanksley <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <1236093081.5247.25326.camel@tanksley> |
John Nowak wrote: > The object systems in Factor and Forth do break referential > transparency. If this means that are not "purely concatenative" > depends on who you ask. Thanks for taking the time to explain; I agree with most of what you've said, but this is false. Forth doesn't have any "the object system"; some of the open-source alternatives available do destroy local concatenativity, but most of them don't. Factor's official object system is definitely fully concatenative. It won't matter who you ask; if they disagree with me, they're wrong. ;-) Technical point: Referential Transparency in a concatenative language is different from the same concept in an applicative language. In one sense, it's harder to use, since you can't simply move words from one place to another (without rearranging the stack); in another sense it's easier to use, since you can "factor out" a word without having to do any work at all (cut and paste is sufficient). Unlike applicative languages, you do NOT have to worry about functional state; the fact that the stack acts as a monad means that the state is already preserved; even I/O can be modelled properly. > - John -Wm