gpt4 book ai didi

lisp - 方案 - 我的 gcd() 总是返回零

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

我今天才开始学习Scheme。

我写了一个函数gcd(),但它总是返回0

(define (gcd a b)
(cond (= b 0)
(a)
(else ((gcd b (modulo a b))))
)
)

为什么我错了?

最佳答案

这应该可以解决问题:

(define (gcd a b)
(cond [(= b 0) a]
[else (gcd b (modulo a b))]))

您在括号之间错误地包围了一些表达式,并且 cond 表达式中缺少一些括号。

请注意,在 Scheme 中,当您将某些内容括在括号中时,比如 (a) 您是在告诉解释器:a 是一个没有参数的过程,我想要调用它,这里不是这种情况,a 只是一个数字。

此外,为了可读性,最好使用 [] 而不是 () 来分隔 cond 中的每个条件> 表达式,如我上面的代码所示 - 但不要忘记它们,它们是强制性的,在您的代码中,您在第一个条件中忘记了它们。

关于lisp - 方案 - 我的 gcd() 总是返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17261441/

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