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))
efcl2013-05-20
f-star2013-05-10
yoshidaa2013-04-09
waman2013-04-01
foobarhoge2013-03-26
ayato02112013-03-24
its_out_of_tune2013-03-20
language_and_engineering2013-03-13
nanjakkun2013-03-12
aoe-tk2013-03-10
mizchi2013-03-09
oknknic2013-03-07
athos2013-02-23
mad-p2013-02-19
hiko44152013-02-14
itchyny2013-02-09
ympbyc2013-01-25
matarillo2013-01-04
ledsun2012-12-29
keigoi2012-12-24