Exercise from SICP:
Observe that our model of evaluation allows for combinations whose operators are compound expressions. Use this observation to describe the behavior of the following procedure:
(define (a-plus-abs-b a b) ((if (> b 0) + -) a b))
There are two possible branches, if b is positive then we get:
((if (> b 0) + -) a b) ((if #t + -) a b) (+ a b)
Wheras if b is non-positive we get
((if (> b 0) + -) a b) ((if #f + -) a b) (- a b)
So we always get a added to the absolute value of b. This is a nice use of a first order function.