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

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to