返回3个中较大的两个参数的平方之和
开始想用if或者cond编写该程序,但是代码显得比较繁琐。参考后构造抽象屏障
(define (square x)
(* x x))
(define (sum-of-squares x y)
(+(square x)
(square y)))
先定义求平方和的函数
(define (bigger x y)
(if (> x y)
x
y))
(define (smaller x y)
(if (> x y)
y
x))
再定义比较两个数大小的基本操作
(define (bigger-sum-of-squares x y z)
(sum-of-squares (bigger x y)
(bigger (smaller x y) z)))
最后利用前面定义的函数作为值进行传递