【发布时间】:2017-02-20 02:11:07
【问题描述】:
我正在阅读一些关于 monad 的内容,但没有使用 Haskell 的经验,并且对类型构造函数的概念感到困惑。
monad 是由一个类型构造函数
M和一对多态函数组成的三元组(M、unitM、bindM)。unitM :: a -> M a bindM :: M a -> (a -> M b) -> M b
在 Java 中:
public class M<T> {
static <T> M<T> unit(T a)
static <T,R> M<R> bind(M<T> a, Function<T,M<R>> f)
}
我认为它们是相同的,类型构造函数就像 Java 中的泛型类型,对吗?如果不是,有什么区别?
【问题讨论】:
-
在 Java 中,类型是类的名称
-
嗯,它更类似于
interface,或者至少是一个abstract类。
标签: java haskell generics monads