高階関数と匿名関数

もちろんある。

次の sum_of は 1~n までの整数それぞれに f を適用して合計を求める関数。

# let rec sum_of f n =
if n = 0 then 0 else f n + sum_of f (n-1);;
val sum_of : (int -> int) -> int -> int = <fun>

f は別のところで定義した関数でもいいし,その場限りの匿名関数(無名関数)でもいい。

匿名関数には fun 式を使う。

# sum_of (fun x -> x * x) 5;;
- : int = 55

ほぼ Haskell といっしょ。