On 12/21/05, John Hughes <[EMAIL PROTECTED]> wrote: > > > > >---------------------------------------------------------------------- > > > >Message: 1 > >Date: Wed, 21 Dec 2005 10:48:08 +0000 > >From: Robin Green <[EMAIL PROTECTED]> > >Subject: Re: [Haskell-cafe] Re: Tutorial uploaded > > > > > > > > > > > > > >>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. > > > > > > > Couldn't agree more. I show my students IO in the first lecture of their > first programming > course in the first term of their first year. A few lectures later I > discuss it in more detail, > and tell to think of an IO a as instructions on a piece of paper to > produce an a. My students > have no difficulty understanding the difference between being given 500 > crowns (a value), > and being given my ATM card and code with instructions how to work an > ATM! Haskell > IO is mystifed far too often in my opinion--it needn't be hard at all.
You should write a book, or at least a tutorial series! :-) The order in which you deal with Haskell subjects in your course is, imo, very close to ideal. It emphasizes Haskell as a real-world pracical langauge, rather then making it look like an academic toy langauge which can't be used for anything real-world. As I mentioned in an earlier message I have yet to come across a book or tutorial which does this "right". It should treats the language from a practical point of view, with IO, QuickCheck generators, data types, GUI's etc. right up front, rather than avoiding it until chapter 19 and later. /S -- Sebastian Sylvan +46(0)736-818655 UIN: 44640862 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe