Standard ML
Standard ML は基本的には関数型言語である。Standard ML で書かれたプログラムの大部分は、値を計算すべき式で構成されている。
他の関数型言語と同様、Standard ML の鍵となる機能は関数であり、それによって抽象化を行っている。例えば、階乗関数は次のように表される。
Standard ML のコンパイラは、このようにユーザーが全くデータ型を指定していない記述から int -> int という型を静的に推論する必要がある。すなわち、x が整数の式でしか使われていないことから、それ自身も整数だと推論し、関数内の式で生み出される値も全て整数であると推論しなければならない。
同じ関数を「節関数定義 (clausal function definition)」で表現することもできる。その場合 if-then-else という条件分岐を '|' で区切られた一連のテンプレートに置換し、個々のテンプレートは特定の値について評価される。各テンプレートは順番に試行され、一致するものを見つけることになる。
局所関数を使い、この関数を末尾再帰に書き換えることもできる。
let-式の値は、in と end に挟まれた式の値になる。