当前位置: 代码迷 >> 综合 >> SICP 1.3
  详细解决方案

SICP 1.3

热度:101   发布时间:2023-09-29 12:42:16.0

返回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)))

最后利用前面定义的函数作为值进行传递