Re: [stack] What does "concatenative" actually mean?
John Cowan <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
John Nowak scripsit:
> In a concatenative language, one thing you can do as add the 'world'
> to the top of the stack and have all operations work below it except
> those that perform IO. This does let you sort of hand-wave and claim
> the language is purely functional. The problem is that *everything*
> now has a forced evaluation order, not just those things that perform
> IO. In other words, even though your language is purely functional,
> you're still essentially stuck with having to use eager evaluation.
> This is why I claim this approach is mostly hand-waving; it doesn't
> let you do anything different than you otherwise would.
Nobody ever claimed that Joy was lazy; "pure functional" does not mean
"pure, functional, and lazy". Lazy languages have their virtues, but
so do eager ones.
Similarly, it has a type system, just not a static type system. Those too
have their disadvantages: I find it useful that languages like Scheme
and Joy can have fully heterogeneous lists.
--
May the hair on your toes never fall out! John Cowan
--Thorin Oakenshield (to Bilbo) [email protected]