gpt4 book ai didi

lisp - 开始练习 SICP 时出错(练习 1.3)

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:26 26 4
gpt4 key购买 nike

提示是定义一个过程,返回三个数中最大的两个的平方和。

我知道这不是一个完美的解决方案,但这是我一起破解的:

(define (largest-of-two-sum-of-squares x y z)
(cond ((and (< x y) (< x z)) (sum-of-squares y z))
((and (< y z) (< y x)) (sum-of-squares x z))
((and (< z x) (< z y)) (sum-of-squares x y)))))

我想知道为什么会出现错误。

;The object 85 is not applicable

单词 object 后面的数字始终是正确答案,顺便说一句。我是一个 scheme 初学者,它一定是我语法中的东西?

谢谢

最佳答案

这是另一种可能的解决方案,即使在所有三个数字都相等或两个数字相等但小于另一个的情况下,这个解决方案也有效:

(define (sum-max a b c)
(define (sum x y)
(+ (* x x) (* y y)))
(if (>= a b)
(if (>= b c)
(sum a b)
(sum a c))
(if (>= a c)
(sum b a)
(sum b c))))

关于lisp - 开始练习 SICP 时出错(练习 1.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9648418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com