関数型プログラミングの手助けをするKotlin製のライブラリであるArrowを使うためには、基本的な用語を知っている必要があります。 今回は主にArrowに記載の内容を元に、型コンストラクタと高カインド型の概要をまとめます。 Arrowにおける型コンストラクタについて 型コンストラクタとは少なくとも1つのジェネリックパラメータを持つクラス(インタフェース)である(例えば、 ListK<A>、Option<A>(※1)のAがジェネリックパラメータに相当) ListK<A>のAに対して、Int型を割り当てた場合、ListKはListK<Int>となる。このとき、ListKにはジェネリックパラメータではなく、Intと言う具体的な型が指定されているため、型コンストラクタとは見なされなくなり、通常の「型」と見なされるようになる。 複数のパラメータを持つ型コンストラクタ(例:Either<L, R>)