
On Wed, 21 Dec 2005, Udo Stenzel wrote:
Donn Cave wrote:
Meanwhile, that fellow evidently didn't write any compiler in Haskell at all. Better a C++ program than a Haskell program that offends you?
But that's besides the point. The conviction that a parser or lexer or prettyprinter means IO is simply wrong, and imho a tutorial should show how much is purely functionally possible before introducing control flow, mutable variables and all the other ugliness. It's more productive this way.
Btw. Simon Thompson states in his book, that he found it didactically infelicitous to introduce recursion before higher order functions because that let beginners stick to case discriminations and recursive programming instead of taking advantage of functions like 'map', 'iterate', 'fold' etc. I can confirm this experience and I think that it is similar to IO vs. non-IO.