SICP問題1.4

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

これの振る舞いを説明しろという問題

この手続きは
b>0 だった場合、
	(> b 0)が#tとなり、+が展開される。つまり、
	1:	((if (> b 0) + -) a b))
	2:	((if #t + -) a b))
	3:	(+ a b)
b<=0だった場合、
	(> b 0)が#fとなり、-が展開される。つまり、
	1:	((if (> b 0) + -) a b))
	2:	((if #f + -) a b))
	3:	(- a b)
	こんな感じに内部的に振舞う。
ようするに、(a-plus-abs-b a b)

を実行すると、a+|b|の計算値が返ってくる。

これであってるのか?
SICPって問題はあるけど解答は無いんだよなぁ。