[Haskell-cafe] IO is a bad example for Monads
Daniel Fischer
daniel.is.fischer at web.de
Sun Dec 9 18:35:29 EST 2007
Am Sonntag, 9. Dezember 2007 23:35 schrieb Ketil Malde:
> Daniel Fischer <daniel.is.fischer at web.de> writes:
> >>> IO is important because you can't write any real program without using
> >>> it.
> >>
> >> Ouch! I get awfully discouraged when I read statements like this
> >> one.
> >
> > I think Lennart was referring to that, you HAVE to know a little IO to
> > write programmes, at least getArgs, getLine, putStr(Ln), readFile,
> > writeFile, appendFile. And therefore some use of the IO monad has to be
> > taught relatively early.
Emphasis on *use*, introduce the concept of monads not before lists, Maybe and
Either.
>
> Well, I guess you could get pretty far using 'interact' - far enough
> in an educational setting to do lists and Maybe, and then monads,
> before introducing monadic IO.
>
> -k
Pretty far, yes, and in an educational setting, at a university, it is quite
common, I believe, to use an interpreter for a while, not producing
executables (that's how I met Haskell, write pure functions and type
expressions at the Hugs prompt). But what about a tutorial for programmers?
How would you do
main = do
putStrLn "Please enter your name."
name <- getLine
putStrLn $ "Hello " ++ name ++ ", nice to meet you."
in that setting?
I doubt you could keep many interested without telling them how to create
standalone programmes, including reading input from stdin and printing output
to stdout.
Cheers,
Daniel
More information about the Haskell-Cafe
mailing list