> However, I would move IO further to the front.
> For any "real life" programming, IO is essential...
I am currently teaching a Functional Programming lecture (notes in German:
http://www.informatik.uni-leipzig.de/~joe/edu/ws00/praxis/skript/)
and I also used this approach: use the do-notation intuitively
(for text IO and graphics, using SOE book),
and explain monads later (with parser combinators and interpreters).
This could be driven to the extreme: not only hide the word "monad",
but also "functional". The title would be "Imperative programming in Haskell"
(as S. Peyton Jones says in Tackling the Awkward Squad:
"Haskell is the world's finest imperative programming language").
The students would start writing do-notated programs in the IO monad,
starting with putStrLn "Hello World";
and gradually the emphasis is shifted from sequencing (the "semicolon")
to "what can we do on the righthand side of let x = ... ",
thus introducing functional programming.
Not sure if this is really a good idea, though...
--
-- Johannes Waldmann ---- http://www.informatik.uni-leipzig.de/~joe/ --
-- [EMAIL PROTECTED] -- phone/fax (+49) 341 9732 204/252 --
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell