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