我通過在斯卡拉的書,並在幺章函數式編程讀數的高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類型在簡單的術語中,準確地回答你的問題問。 –