高階関数と匿名関数

もちろんある。

次の 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 といっしょ。

カテゴリー: OCaml パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください