gpt4 book ai didi

scheme - 如何创建一个将 1 到 "x"之间的所有数字与 dotime 相乘的函数?

转载 作者:行者123 更新时间:2023-12-02 04:48:46 27 4
gpt4 key购买 nike

我正在创建一个函数,通过 dotimes 循环将 1 输入和“x”输入之间的所有数字相乘。如果您愿意的话,请检查我的函数并说出问题所在,因为我不太了解Scheme 中的循环。

(define (product x)
(let ((result 1))
(dotimes (temp x)
(set! result (* temp (+ result 1))))
result))

最佳答案

使用递归。这是在Scheme/Racket 中做事的方式。并尽量不要使用 set! 和其他更改变量的函数,除非确实没有其他选择。

这是一个关于Scheme中递归的教科书示例:

(define factorial
(lambda (x)
(if (<= x 1)
1
(* x (factorial (- x 1))))))

关于scheme - 如何创建一个将 1 到 "x"之间的所有数字与 dotime 相乘的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6311449/

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