昨日は、カインドと型について考え、Tagged type を探検して、さまざまな型の 2項演算を抽象化する方法としての Semigroup
と Monoid
をみてみた。
いくつかの感想や意見もいただいた。まず、kind
計算機だけど paulp さんが Option.type
みたいにコンパニオン型を使ったらどうかと教えてもらった:
@eed3si9n It’s a sad hack, but you should be able to ask for kind[Option.type] and look up the kind of the companion class.
— Paul Phillips (@extempore2) September 3, 2012
更新したバージョンを使うとこう書ける:
scala> kind[Functor.type]
res1: String = Functor's kind is (* -> *) -> *. This is a type constructor that takes type constructor(s): a higher-kinded type.