「高階関数」の版間の差分
削除された内容 追加された内容
m Bot: テンプレートの差替え (WP:BOTREQ#スタブテンプレート修正依頼) |
編集の要約なし |
||
12行目:
(f 2 3))
3つめの<tt>calc</tt>は、他の2引数関数を受けとり、その関数の引数として2と3を渡して計算させる関数である。即ち、これは関数を引数にとる高階関数となる。
> (calc add) ;2+3
27行目:
5
ここで、まず<tt>(add 2)</tt>の戻り値は'''1つ引数をとって2を足す関数'''になる。そして、戻り値として返ってきた関数に、更に3を渡して最終的な計算結果を得ている。つまり、<tt>add</tt>自身は関数を戻り値とする高階関数となっている。
ほとんどの[[データ型|型付き]]関数型言語においては、関数は最初からカリー化して与えるのが一般的である(つまりn引数関数を、n個の引数の[[直積]]を取る関数とするのではなく、1引数の高階関数をn個並べたような型で定義する。)例えば[[Haskell]]において、
41行目:
例えばCで[[#関数を引数にとる関数]]を書くと次のようになる。
#include <stdio
int
|