
Hello michael, Sunday, August 8, 2010, 5:36:05 PM, you wrote: i highly recommend you to read http://sigfpe.blogspot.com/2006/08/you-could-have-invented-monads-and.html that is the best introduction into monads i know and then http://haskell.org/all_about_monads/html/index.html - comprehensive tutorial about many useful monads both are mentioned at http://en.wikipedia.org/wiki/Monad_%28functional_programming%29
What is <- ? Couldn't find anything on Hoogle.
1) main = do x <- getLine -- get the value from the IO monad putStrLn $ "You typed: " ++ x
2) pythags = do z <- [1..] --get the value from the List monad? x <- [1..z] y <- [x..z] guard (x^2 + y^2 == z^2) return (x, y, z)
Do and proc notation
Sweet Unsweet Monadic binding do x <- getLIne getLine >>= \x -> putStrLn $ "You typed: " ++ x putStrLn $ "You typed: " ++ x
So, Example 2 desugared becomes...
[1..] >== \z -> ?
Michael
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com