ML/OCamlに関する世界観です。
関数型言語。MicrosoftがOCamlをベースとした.NET Framework用のF#をリリースしているが、それ以前からHaskellとともに「使える関数型言語」として有名である。
MLは純粋関数型でない関数型言語として有名で、関数型言語でありながら破壊可能なレコード型を書くことができ、遅延評価ではなく先行評価といった特徴を持つ。
OCamlはMLをベースとしながらオブジェクト指向の考え方を取り入れている。
オブジェクト指向:オブジェクト – OCamlにサンプルコードがあります。以下に「オブジェクトとクラス」の中の「整数のスタックを提供する基本コード」より、Ocamlの技術的要素を説明します。
要素 | 説明 |
---|---|
val mutable the_list | ミュータブル(変更可能)なインスタンス変数。値を再代入できる。 |
( [] : int list ) | 空のリスト。 |
push, pop, peek, size | スタックの各機能(プッシュ・ポップ)。 |
List.hd, List.tl, List.length | リストの要素・長さを返す。 |
:: | 要素とリストからリストを作る(cons)。 |
@ | リストとリストの連結を行う(append)。 |
<- | 割り当て演算子。 書き換え可能なインスタンス変数や、 レコード内のフィールドに破壊的作用を与える。 |
詳しくは以下が参考になるかも。
F#はMicrosoftによる.NET向けのOCamlベースの関数型とオブジェクト指向を兼ね備えた言語。一部では「書いていて一番気持ちいい」ととても評判である。
.NETも参照のこと。
2023.08.29
DreamはOCamlによるWebフレームワーク。
2023.08.29
FalcoはF#によるWebフレームワーク。
2023.10.20
関数型プログラミングも参照のこと。
オブジェクト指向も参照のこと。
OCamlのチュートリアル。