什么意思是'a - >类型在Haskell的m b`?

时间:2016-10-25 18:51:01

标签: haskell

示例 - 来自Haskell基础模块的函数runKleisli

newtype Kleisli m a b = Kleisli { runKleisli :: a -> m b }

这意味着runKleisli有一个类型为a的参数,并且必须返回函数m,它有1个参数b

1 个答案:

答案 0 :(得分:5)

这意味着m是一种种类 * -> *;也就是说,m类型构造函数,它接受单个参数,例如MaybeEither String。当您实例化Kleisli并自己执行替换时,您可以看到它是如何工作的。

例如,考虑Kleisli Maybe String Integer之类的内容。 runKleisli的替换类型为String -> Maybe Integer,您可以看到m如何用作类型构造函数。

有关Haskell中种类的更多信息,请参阅What exactly is the kind "*" in Haskell?