top page > computer > haskell > web_lecture > for_programmer > higher_order.html
更新日:
文責: 重城良国

高階関数

高階関数とは

高階関数とは

関数だ。「くりかえし」などの制御構造を特別な構文ではなく関数で書ける。

関数を返す関数

[関数を返す関数の図]

複数の引数をとる関数のように見える関数は「関数を返す関数」だ。

引数として関数を取る関数

[引数として関数を取る関数の図]

第1引数の関数を第2引数の値に2回適用する関数を考える。

higher.hs

twice f x = f (f x)

1つ前、1つ後の値を返す関数pred、succで試す。

% ghci higher.hs
*Main> pred 8
7
*Main> twice pred 8
6
*Main> succ 8
9
*Main> twice succ 8
10

まとめ

高階関数とは

関数だ。「返り値が関数である関数」は複数の引数をとる関数のように見える。制御構造を特別な構文ではなく「関数を引数としてとる関数」で書ける。

課題

  1. 第1引数の関数を第2引数の値に3回適用する関数を作成せよ

「関数リテラル」へもどる 「演算子」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics