rurururururumin’s diary

勉強の備忘録

SICP 問題1.4

問題 1.4


われわれの評価モデルは, 演算子が合成式である組合せでも使えることを観察せよ. それに従って, 次の手続きの振舞いを述べよ.
(define (a-plus-abs-b a b)
( (if (> b 0) + -) a b) )

とりあえずぶっこも~

#lang racket
(define (a-plus-abs-b a b)
( (if (> b 0) + -) a b ) )       
#| ①(b>0なら+を返す。そうじゃなければ-を返す。)
という計算式を  (a-+-絶対値-b) として定義する。


(a-plus-abs-b -26 -85)

>59


#|a=-26,b=-85だったら
(if (> b 0) + -) a b ))
(( -85 なので、-を返す)ab)
つまり、( - a b)
-26 - (-85) =59 |#

(a-plus-abs-b)の塊に気取られたけど、ただの記号みたいなもんね。
見たかったことは、if文の中で演算子が組み合わせで使えるぞ、ということかな。日本語合ってるかな。