[Haskell-cafe] Funny State monad dependency

Miguel Mitrofanov miguelimo38 at yandex.ru
Wed Apr 16 09:04:49 EDT 2008


It has nothing to do with State; it actually works in List monad.  
"return y" is just another way of writing "[y]".

You don't need to import Control.Monad.State for this to work; you  
only need Control.Monad (which is imported by the former).

On 16 Apr 2008, at 16:56, Hans Aberg wrote:
> When I load the State module in Hugs, then I can define the function  
> f below, but I do not immediately see exactly what function "return"  
> returns. Explanation welcome.
>
> For example:
>  > f [2..4] [6..9]
>  [6,7,8,9,6,7,8,9,6,7,8,9]
> That is, it just repeats the second argument as many times as the  
> length of the second argument.
>
>  Hans Aberg
>
> --------
> import Control.Monad.State
>
> f :: Monad a => a b -> a c -> a c
> f x y = x >>= (return y)
> --------
>
> _______________________________________________
> 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