我应该写一个函数,打印一组给定的三个数字中两个更大数字的平方和.
我笨拙地处理了这种情况.我没有编写一个函数来返回一组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)))
)
Run Code Online (Sandbox Code Playgroud)