
Alastair David Reid:
Note that "recursive" doesn't (necessarily) mean "stack hungry" in functional languages. Only imperative languages feel compelled to guarantee that infinitely recursive functions will run out of stack space.
Well, a STRICT functional language doesn't seem to have much choice either. Or am I missing some nice trick? (Don't mention tail recursion). == About your statement:
The cool thing about Haskell is that the difference between being primitive and non-primitive is a lot smaller than in most other languages.
This is *very* dependent on the implementors' philosophy. This point is duly underlined in the description of STG by Simon PJ - at least in the context of data structures. But, say, the difference between primitive monads such as IO stateful stuff and some user-defined monads is quite fundamental. Unless I am wrong... But I can't discard the impression that in Haskell the hiatus between the IO primitives and other programming layers is bigger than in the imperative world. Jerzy Karczmarczuk Caen, France