多相型レコードとオブジェクト

SML#では,ラベル付きレコードは基本データ構造の一つであり,効率よいコードにコンパイルされます.多相型関数とともに使えば,「オブジェクト」の機能を表現できます.

  1. レコード操作の例
  2. メソッド集合の抽象
  3. オブジェクト指向的な表現

いづれも本質的に同一です.このようにSML#では,レコード多相性により,「オブジェクト」などの特殊な型の導入をせずに,オブジェクト指向的な抽象化が可能です.関数型言語では,他の高階関数との相性などを考えると,1のスタイルで十分と考えられます.

Last modified:2007/03/30 12:18:40
Keyword(s):
References:[プログラミング例]