2010年1月3日日曜日

問題1.4

われわれの評価モデルは、演算子が合成式である組合せでも使えることを観察せよ。それに従って、次の手続きの振舞いを述べよ。

(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))

bが0よりも大きい場合、if式は+を返し、その場合評価対象は

(+ a b)

となる。それ以外の場合、

(- a b)

が評価される。
結果、手続き名通り、aとbの絶対値が加算されるのと同じ結果となる。

0 件のコメント:

コメントを投稿