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]
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.