【发布时间】:2012-01-31 04:32:42
【问题描述】:
class Monad m where
return :: a -> m a
(>>=) :: m a -> (a -> m b) -> m b
(>>) :: m a -> m b -> m b
m >> n = m >>= \_ -> n
fail :: String -> m a
我以前从未在 typeclass 中看到过方程式(或函数声明?)。为什么 typeclass 中有一个方程?
我知道 _ 是匹配任何事物的术语。但是 m >>= \_ -> n 匹配什么?
【问题讨论】:
-
我刚刚意识到 \_ -> n 抛出了第一个参数。
标签: haskell lambda monads lambda-calculus