返回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)xy))
(define (smaller x y)(if (> x y)yx))
再定义比较两个数大小的基本操作
(define (bigger-sum-of-squares x y z)(sum-of-squares (bigger x y)(bigger (smaller x y) z)))
最后利用前面定义的函数作为值进行传递