> (define (apply-2-3 func) (func 2 3)) > (let ((func0 +) (func1 foo)) (list (apply-2-3 func0) (apply-2-3 func1))) (5 9)apply-2-3 は関数 func を引数としてとり、 それに 2 3 を渡して評価させようというものです。 このように関数を引数としてとる関数のことを 高階関数 と呼びます。
関数の合成も例として考えられるでしょう。 g(x) = x * x があったとします。 h(x) = g(f(x)) = f(x) * f(x) とします。 このとき、f をどんな関数でもよいとすると、h という x に関する関数は f を引数とする関数にもなっているわけです(h = G(f) = f o g)。 この様に、高階関数は色々な所に現われていました。
99.10.7/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp