gpt4 book ai didi

loops - 让 Racket 中的循环代码。递归阶乘

转载 作者:行者123 更新时间:2023-12-01 04:52:31 24 4
gpt4 key购买 nike

考虑:

(define (factorial x)
(let loop ((x x)
(acc 1))
(if (zero? x)
acc
(loop (sub1 x) (* x acc)))))

我不明白如何让这里工作。此外,我不明白这段代码。

最佳答案

您的示例与

(define (factorial x)
(define (loop x acc)
(if (zero? x)
acc
(loop (sub1 x) (* x acc))))
(loop x 1))

它的工作原理与
  (define (factorial x)
(loop x 1))

(define (loop x acc)
(if (zero? x)
acc
(loop (sub1 x) (* x acc))))

要查看程序如何工作,最好的建议是使用 DrRacket 中的步进器。
由于步进器必须以“中级”教学语言运行,因此将此版本(注意最后一个示例)粘贴到 DrRacket 中。选择“中级”教学语言,然后单击步进按钮。
(define (factorial x)
(loop x 1))

(define (loop x acc)
(if (zero? x)
acc
(loop (sub1 x) (* x acc))))

(factorial 3)

另请参阅此问题以获取显示步进器的图像: Fibonacci in Scheme

关于loops - 让 Racket 中的循环代码。递归阶乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22936739/

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