On Fri, 5 Jan 2001, Michael Zawrotny wrote:

>I would love to see something that is more about getting
> things done in a how-to sense, including IO.  Much of the material I've
> seen tends to either relegate IO and related topics into a small section
> near the end (almost as if it were somehow tainted by not being able
> to be modelled as a mathematical function), or it goes into it talking
> about monads and combinators and things that make no sense to me.

        Aside from variety of excellent theoretical papers on "monads and
        combinators and things" there are at least three or four down to
        earth attepmts to explain IO in simple terms. Check Haskell Wiki
        page for references. 

        Personally, I like the "envelope" analogy, which is good enough
        for all practical IO manipulations: you open IO envelope,
        manipulate its contents and return the results in another
        envelope. Or you just pass unopened envelope around if you
        do not care reading its contents. But you are not allowed to
        pollute the rest of the program by throwing unwrapped
        "notes" around; they must be always enclosed in IO "envelopes".
        This is an example of a "howto recipe", as you asked for.

        There are plenty of library code and short applications
        around where IO monad is used for simple things, like reading
        and writing to files, communicating with external processes
        (reading a computer clock or something), exchanging information
        with web servers (CGI libraries and similar applications), etc.
        Some do data acquisition (like reading arrays from files)
        some do nothing more but simply write data out, as in my
        GD module. 
        [This is not a self promotion, this is just the simplest possible
        useful IO application that comes to my mind now. Check also
        "funpdf" - there are plenty examples of reading, writing and
        interacting with a purely functional world.] 
 
        Jan




_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to