【发布时间】:2017-11-24 07:53:26
【问题描述】:
我最近才了解更高种类的类型,但我看到的每个示例都只使用了 2 级种类 (* -> *) -> *,例如 Functor。
在 Scala 中,使用了一个奇怪的 trait 定义,而在 Haskell 中,使用了 type classes。而且这两种方法似乎都不能再使用一种抽象程度(即((* -> *) -> *) -> *)。
我既不是 Scala 方面的专家,也不是 Haskell 方面的专家,因此如果您能提供此类更高程度类型的简单示例(如果它们完全可以表达的话)将会很有帮助。
【问题讨论】:
-
“这两种方法似乎都不能再多一层抽象”——你为什么这么认为? (顺便说一句:可能更好地关注特征或类型类,而不是两者——它们是完全不同的野兽)。
标签: scala haskell traits typeclass higher-kinded-types