[Haskell-cafe] Re: Tutorial uploaded
Benjamin Franksen
benjamin.franksen at bessy.de
Wed Dec 21 16:01:57 EST 2005
On Wednesday 21 December 2005 18:48, 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?
>
> Oh no, he actually wrote something disgusting built mostly out of
> regexes in Perl. I don't think it even works, and I don't think I
> could have convinced him to Do The Right Thing in whatever language.
>
> 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.
This is a red herring IMO.
A good tutorial on Haskell can mention and explain how to do IO in the
first chapter and /still/ show clearly and convincing how to do most of
the real work in an elegant, purely functional style. It could even
contain a 'bad example' where IO is used unnecessarily and compare it
to the 'good' functional version.
It is not a good idea to treat beginner's in Haskell as little children
who must be protected from the bad world of IO as long as possible.
(FWIW, it can be argued that this isn't even a good attitude toward
little children.) Especially since most Haskell newcomers will have a
background in imperative programming, as someone esle already
mentioned.
Of course, /precise/ explanation of the IO monad must be postponed to a
later chapter, and surely only /after/ introducing monads in general
and giving some non-IO examples. I would also argue that the word
'category theory' should /not/ appear in the main text of a tutorial (a
small footnote might be acceptable, as well as a reference in a late
chapter named 'further reading').
Ben
More information about the Haskell-Cafe
mailing list