
On 8 Aug 2010, at 17:36, michael rice wrote:
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)
From: http://en.wikibooks.org/wiki/Haskell/Syntactic_sugar
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 -> ?
[1..] >>= \z -> [1..z] >>= \x -> [x..z] >>= \y -> guard (x^2 + y^2 == z^2) >> return (x, y, z) Isn't that kinda obvious?
Michael
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe