CPL (圏論プログラミング言語)

CPL (正式名称：Categorical Programming Language) は圏論に基づいたデータ型の定義と計算モデルを持つ関数型プログラミング言語であり、1987年、萩野達也によって発案された。圏論の計算機科学に対する応用の黎明期に生まれた言語である。

詳細 
元々定義されているデータ型が存在せず、何らかの関手の始双代数あるいは終双代数としてデータ型を定義する。プログラムあるいは関数は射として、ポイントフリーの形式で記述する。関数の表し方としては射として表すものと冪対象として表すものの二通りがある。元々定義されている関数は恒等関数のみであり、元々定義されている制御構造は関数合成のみである。条件分岐や帰納法などはデータ型の定義に付随して定義される。

実装 
 Haskellによる実装

参考文献 
 萩野達也 "A Categorical Programming Language" 1987年
 萩野達也, 「カテゴリー理論的関数型プログラミング言語」『コンピュータ ソフトウェア』 1990年 7巻 1号 p.1_16-1_32, 日本ソフトウェア科学会, , 

CPL
関数型プログラミング言語
圏論