
Hello John, Thursday, December 22, 2005, 3:48:37 AM, you wrote: JM> You can't not start with IO for people who already know how to program, JM> if you are teaching someone programming for the very first time then JM> starting with the pure functional side is fine. But for people that JM> already know how to program, they are constantly thinking of everything JM> else they have written and how they might do it in the language they are JM> currently learning comparing and contrasting in their head. They need to JM> have the tools to replicate what they have done with other languages JM> right away, they don't want to know how to do the examples given in the JM> book except insofar as they let them understand how to write the JM> examples wiggling around in their head. yes, it's just about me :) first i time i tried to learn Haskell (afair, it was advertized on bzip2 page), i decided that it need to write everything as a pure function and found monad concept very complex (afair, "gentle introduction" emphasizes that monads are very complex things!). next time i tried to learn Haskell, my main question was "is it possible to use imperative style of controlling program action?". i recognized functional power of language and it was the last barrier to really use it so, i think, it is needed to "reassure" imperative programmers at first pages by demonstrating techiques of imperative programming, including conditional execution and IORef/MArray and only after that present more convenient alternatives. at least for my imperative feel, conditional execution, cycles, modifiable variables and arrays together form enough basis to implement any algorithm -- Best regards, Bulat mailto:bulatz@HotPOP.com