Standard ML
ここでは "delta" を具体的に指定し、より特化した関数を得る。
ここで推論された型を見ると、置換された "d" は第一引数が "real -> real" という型の関数になっている。これを使って、例えば x^3-x-1 での x=3 のときの微分値の近似を計算する。
正しい値は f'(x) = 3x^2-1 => f'(3) = 27-1 = 26 である。
関数 "d" は別の関数 "f" を引数としてとるので、「高階関数 (higher-order function)」と呼ばれる。
カリー化と高階関数は冗長コードを排除できる。例えば、ライブラリに a -> b という型の関数が必要だとする。しかし、a 型と c 型のオブジェクトに固定的な関係がある場合、a * c -> b という型の関数を書くほうが便利である。(a * c -> b) -> (a -> b) という型の高階関数を使えば、共通点を取り除くことができる。これは Adapter パターンの一例である。