gpt4 book ai didi

functional-programming - 方案( Racket )正确编写的功能不适用于某些输入

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

所以我写了 I function in racket 来计算总和:

(define (sum term a next b)
(if (> a b)
0
(+ (term a) (sum term (next a) next b))))

术语是应用于每个参数的函数。 A 是开始 next 是我们前进到下一个元素的方式(即 a2 = 2*a1 或 a2 = a1 +1 等),b 是最后一个元素。

还有2个额外的功能:

(define (square x) (* x x))
(define (inc x) (+ x 1))

如果我输入:

(sum square 1 inc 5) I get which is correct 55

但是如果我输入:

(sum square 1 square 5)

我陷入了一个循环!?为什么 a2 应该是 a1*a1 和 a3=a2*a2 并且 a 应该超过 b 所以结束递归的条件将是 fultifield。很奇怪。

最佳答案

您的 sum 函数将永远循环,因为 (square 1) 的计算结果始终为 1 并且永远不会大于 5.

关于functional-programming - 方案( Racket )正确编写的功能不适用于某些输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27799975/

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