Haskellでの合成可能なオブジェクトの構成とその応用

木下郁章, 山本和彦, 2015

Haskellで状態を管理する際は、 一般的に代数データ型や型クラスが用いられるが、 データが拡張できないか、動的な性質を持たない。 そのためHaskellは、 複雑な状態を扱う問題領域には適していないと考えられてきた。 一方で、一般的なオブジェクト指向言語では、 オブジェクトを提供することでこの問題領域で成功を収めている。 本論文では、Haskellの言語仕様を変更することなしに、 オブジェクト指向言語から着想を得たオブジェクトを実現する。 本論文で提案するオブジェクトは圏を構成し、合成を用いて継承を表現できる。 また、終了する運命にあるオブジェクトやストリーミングなどに応用でき、 複雑な状態を扱うゲームの実装にも使われている。

論文をダウンロード(PDF)

PPL 2015 発表スライド

ここに掲載した著作物の利用に関する注意 本著作物の著作権は日本ソフトウェア科学会 に帰属します.本著作物は著作権者である日本ソフトウェア科学会の許可のもとに掲載す るものです.ご利用に当たっては「著作権法」に従うことをお願いいたします.

Notice for the use of this material: The copyright of this material is retained by the Japan Society for Software Science and Technology (JSSST). This material is published on this web site with the agreement of the JSSST. Please be complied with Copyright Law of Japan if any users wish to reproduce, make derivative work, distribute or make available to the public any part or whole thereof.

Fumiaki Kinoshita, @fumieval