> 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

Reply via email to