型の種類
型とは、値についている何らかの推論をするためについている小さなラベルである。
それと同じように型にも小さなラベルが付いている。
型に付くラベルのことを種類(kind)
という。
種類を調べる
*Main Lib> :k Int Int :: *
*
は具体型を表す記号。
具体型とは型引数をとらない型のこと。
Maybe
を見る
*Main Lib> :k Maybe Maybe :: * -> *
具体型をとって -> 具体型を返す 型コンストラクタであることがわかる。
*Main Lib> :k Maybe Int Maybe Int :: *
型引数を1つ与えると具体型になる。
Either
を見る
*Main Lib> :k Either Either :: * -> * -> *
2つの具体型をとって具体型を返す関数である。 部分適用してみる。
*Main Lib> :k Either String Either String :: * -> * *Main Lib> :k Either String Int Either String Int :: *
Functor になれる型は種類が * -> *
の型なので、
Either を部分適用して * -> * -> *
から * -> *
に変換する必要があった。
所感
全てが関数でできている感が得られた。

- 作者: MiranLipovaca
- 出版社/メーカー: オーム社
- 発売日: 2017/07/14
- メディア: Kindle版
- 購入: 4人 クリック: 9回
- この商品を含むブログを見る