
Hello Dan, Monday, December 10, 2007, 9:44:06 PM, you wrote:
When someone comes to me and says "I have this Python script that
just my cent or two for this discussion: sometime ago I've started an "introduction to IO" tutorial. it's both not in English and not finished so i'll just explain its idea: "Haskell has strict distinction between procedures that may perform side-effects and pure functions; functions can't call procedures. there is special notion for procedures, with do/return/..." and further explanation shows various details of building procedures. i think that such description closely mirrors thinking of imperative-language programmers and allows to overcome "monad barrier" in teaching "real-world haskell" of course, this meant only as introductory course and at some moment haskeller should read "all about monads" and "io inside", but i consider this as intermediate-level or even advanced material btw, explanation in terms of functions vs procedures isn't my own, unfortunately i don't remember its origins, but i find it very helpful and understandable for average imperative programmers -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com