myLiftM2 :: Monad m => (a -> a1 -> m b) -> m a -> m a1 -> m b
myLiftM2 f x y = x >>= (\r1 -> y >>= (\r2 -> f r1 r2))
Run Code Online (Sandbox Code Playgroud)
在liftM2中f返回b,但myLiftM2返回mb
是否存在>>=两个参数的函数?就像是
bind2 :: m a -> m b -> (a -> b -> m c) -> m c
Run Code Online (Sandbox Code Playgroud)