「Scheme」の版間の差分
削除された内容 追加された内容
Semi-Brace (トーク | 投稿記録) M +syntax highlight, code |
Semi-Brace (トーク | 投稿記録) M編集の要約なし |
||
262 行
手続きは引数や返り値にも使えるため、手続きを返す手続きも作成できます。下の例では、最初に平均を計算する手続きを返す手続きを作成し、それを変数create-average-functionに束縛しています。そして、2つめ、3つめで変数create-average-functionに束縛されていた平均を計算する手続きをつくる手続きに、まず加算と乗算の定義を与え、平均を計算する手続きを得ます。そして、その手続きに引数10と20を与えて、具体的な平均値を計算しています。
<
> (define create-average-function
(lambda (add multiply)
(lambda (x y) (multiply (add x y) (/ 1 2)))))
</syntaxhighlight>
<code> create-average-function</code>
<
> ((create-average-function + *) 10 20) ; 相加平均
</syntaxhighlight>
<code> 15</code>
<
> ((create-average-function * expt) 10 20) ; 相乗平均、exptは累乗を計算する組み込み関数。
</syntaxhighlight>
<code> 14.1421356...</code>
|