Hatena Blog Tags

高階関数

(コンピュータ)
こうかいかんすう

higher order function

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

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

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

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

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

Common Lispやemacs 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))

このタグの解説についてこの解説文は、すでに終了したサービス「はてなキーワード」内で有志のユーザーが作成・編集した内容に基づいています。その正確性や網羅性をはてなが保証するものではありません。問題のある記述を発見した場合には、お問い合わせフォームよりご連絡ください。

関連ブログ