[Haskell-cafe] What is <-

Miguel Mitrofanov miguelimo38 at yandex.ru
Sun Aug 8 09:42:19 EDT 2010


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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list