
On 12/18/05, Daniel Carrera
Chris Kuklewicz wrote:
By nomad you seemed to either be ridiculing or misspelling monad.
Misspelling. It's a new word for me. I'm not really sure what it means. I expect it'll take me a while to figure it out.
It sounds scary, I know! For now I'd recommend you to just think of it as "A computation, which may have side-effects, returning a value". And consider the do-notation as a way to "merge multiple computations together into a single one". For instance, "print" is a computation taking a showable value, returning () with the side effect that a string representation of the value is printed to stdout. Writing an IO program is then easily conceptualised as just "merging" together several existing IO computations into a single one. The compiler will take care of generating code for actually *running* the IO computation, your job is to define it. Monads have more uses than this, and there's a bit of interesting things to think about when learning about them, but you should probably hold off on that for now. /S -- Sebastian Sylvan +46(0)736-818655 UIN: 44640862