SML# - Resources/ProgrammingExamples/Objects Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

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

# [[レコード操作の例|Resources/ProgrammingExamples/Objects/Recods]]
# [[メソッド集合の抽象|Resources/ProgrammingExamples/Objects/Methods]]
# [[オブジェクト指向的な表現|Resources/ProgrammingExamples/Objects/Objects]]

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