スマートフォン用の表示で見る

高階関数

コンピュータ

高階関数

こうかいかんすう

higher order function

関数引数に取ったり,関数を結果として返すような関数数学では汎関数と呼ばれることもある.例えば次のように定義される関数fは,2つの引数 g, a を取り,a に g を2回適用した結果を与える.

f(g,a) = g(g(a))

Common LispScheme, ML, Haskellといった関数型プログラミング言語では高階関数が多用される.

上の関数 f の定義をSchemeで書くと以下のようになる.

(define (f g a) (g (g a))

Common Lispemacs Lispでは以下のとおり

(defun f (g a)(funcall g (funcall g a)))

ML(Standard ML)では以下の通り.

fun f (g, a) = g (g a);

R言語では以下のとおり

f <- function(g, a)g(g(a))

Rubyでは

def f(g,a)

g.call(g.call(a))

end

Pythonでは

def f(g,a): g(g(a))