Re: [stack] disallowing recursive definitions
John Nowak <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
On Mar 3, 2008, at 8:38 PM, Don Groves wrote: > A few months back, I finally caught on to this: by their nature, > concatenative languages enforce computation by continuation > passing. Indeed. This in *incredibly* useful as it means your language is essentially purely functional by default. After all, it's trivial to thread a world state through the entire program on the top of the stack. All you need then is a simple effect system to allow enforcing of purity (purity = does not read/write the world value) via the type system when desirable/necessary. The monoidal nature of Joy-like languages also enables linearity without linear/uniquneness types. Cat takes advantage of this, although perhaps not originally knowingly. Fifth does as well. - John