【发布时间】:2014-09-16 02:01:04
【问题描述】:
我应该编写一个函数,打印一组给定三个数字中两个较大数字的平方和。
我处理这种情况相当笨拙。我没有编写返回一组 3 中最大的两个数字的函数,而是编写了该函数,以便表达式减少到两个所需的数字。 # SSL 函数。
我必须这样做的原因是我无法编写可以同时返回多个值的 LISP 函数,也无法编写可以读取两个值作为参数的 LISP 函数。
有没有办法可以抽象出其他过程中最大数的计算?
(define
(min a b)
(if (> a b) b a)
)
(define
(max a b)
(if (< a b) b a)
)
(define
(square a)
( * a a)
)
(define
(ssl a b c)
(+ (square (max a b)) (square (max (min a b) c)))
)
【问题讨论】: