Haskell中表达式m >>= k里的m和k分别代表什么?
Haskell中
>>=里m和k的约定含义 你猜的没错,k确实是**continuation(延续)**的缩写。在m >>= k里,k是一个接收纯值、返回monadic值的函数,它代表当前monadic计算之后要执行的后续逻辑,也就是“延续”部分。
至于m,它是monad的首字母。这里的m指代某个Monad实例的类型构造器(比如Maybe、IO这类),m a就是对应monad包装后的monadic值——也就是bind操作左边那个装着值的“容器”。
这种命名是Haskell社区约定俗成的习惯,用简短的首字母或缩写保持代码/示例的抽象性,不用绑定到具体的monad类型,方便大家快速理解示例里的抽象逻辑。
内容的提问来源于stack exchange,提问作者Flux
相关产品推荐
相关产品推荐

