高階関数
高階関数(こうかいかんすう、英: higher-order function)とは、第一級関数をサポートしているプログラミング言語において少なくとも以下のうち1つを満たす関数である。
関数(手続き)を引数に取る
関数を返す
fold 関数は重畳(英語版)、堆積、畳み込みや折り畳みなどと呼ばれ、英語ではreduce、injectとも表現される。foldはリストの各要素に対して与えられた関数を適用する。
例えば、リスト'(1 2 3)の各要素の総和を取るには以下のようにできる。
右方向の畳み込み(foldr)と左方向の畳み込み(foldl)があり、言語によっては最初から同様の機能が組み込まれていることがある(詳しくはfoldの英語版記事の該当項目を参照)。