我通过在斯卡拉的书,并在幺章函数式编程读数的高Kinded类型,他们谈论一个Monoid接口,看起来像这样:在斯卡拉
trait Monoid[A] {
def op(a1: A, a2: A): A
def zero: A
}
后来,他们定义特定的含半幺群通过扩展这个接口实例。例如,
val intMonoid = new Monoid[Int] {
...
}
val listMonoid = new Monoid[List[Int]] {
...
}
一对夫妇,我通过本章的10中读出更多的网页,我碰到过“高kinded类型”根据本书是任何类型的,它自身是可以采取其他类型的类型。
trait Foldable[F[_]] {
...
...
}
所以特质Foldable是根据书中较高的亲属类型。我的问题是,对我来说,Monoid [A]也适合'更高接口类型'的定义,因为它可以采用List [A]。我的理解是否正确?如果不是什么让Scala更高级的KINED类型成为更高的KINED类型?
编辑:所以一元型构造函数采用参数,并产生一个类型。那么这个案例呢?
def listMonoid[A] = new Monoid[List[A]] {
...
...
}
那么我的listMonoid函数是HKT吗?
[这个问题](http://stackoverflow.com/questions/6246719/what-is-a-higher-kinded-type-in-scala)解释了更高的kinded类型在简单的术语中,准确地回答你的问题问。 –