List monad有return x = [x].那么为什么在下面的例子中结果不是[(["a", "b"], [2, 3])]?
return x = [x]
[(["a", "b"], [2, 3])]
> pairs a b = do { x <- a; y <- b; return (x, y)} > pairs ["a", "b"] [2,3] [("a",2),("a",3),("b",2),("b",3)]
monads haskell list
haskell ×1
list ×1
monads ×1