
Henning Thielemann wrote:
Starting with IO in Haskell is like starting LaTeX with rotating text and making it colorful.
Not at all!
Indeed IO _is_ complicated regardless of whether it is modelled by Monads in Haskell or differently in other languages.
Rubbish! 10 PRINT "WHAT IS YOUR NAME?" 20 INPUT NAME IO isn't complicated in BASIC.
Beginners should start with non-monadic functions in order to later avoid IO in their functions whereever possible.
Whilst localising IO to a small part of the program is generally a good idea, beginners should not be scared off by the thought that IO in Haskell is so hard it has to be covered on page 94. This is not the case. It should be introduced on page 1. If people want Haskell to be treated as a practical language, not just something for doing academic teaching and research with, it should be taught as a practical language - which means that things like IO and space/time usage come to the forefront. -- Robin