[Haskell-cafe] Re: Tutorial uploaded
sebastian.sylvan at gmail.com
Wed Dec 21 10:11:48 EST 2005
On 12/21/05, John Hughes <rjmh at cs.chalmers.se> wrote:
> >Message: 1
> >Date: Wed, 21 Dec 2005 10:48:08 +0000
> >From: Robin Green <greenrd at greenrd.org>
> >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.
More information about the Haskell-Cafe