gpt4 book ai didi

scheme - 放! Racket 模块错误中的未绑定(bind)标识符

转载 作者:行者123 更新时间:2023-12-04 14:30:36 24 4
gpt4 key购买 nike

我尝试编写一个在第一个和第二个参数之间返回随机数的函数。

(随机-介于 40 80 之间)

应该给出一个 40 到 80 之间的随机数。这是代码:

(define (random-between x y)
((set! result (random y))
(if (> result x)
result
(random-between x y))))

我想当函数第二次递归运行时,随机函数会创建一个新的结果,再次对其进行测试,如果它高于 x,则将其作为最终结果输出。

这是我第一次使用“设置!”它给了我这个错误:

set!: unbound identifier in module in: result

其他类似的问题并没有帮助我找到解决方案。

最佳答案

我会回答我自己的问题,就像我希望其他人回答一样。不是刻薄的答案或书籍推荐。

是的,您需要使用具有以下语法的 let:

(let ([id value]) body-which-is-evaluated-after)

这是为了速度效率而没有递归的代码。

(define (random-between x y)
(let ([result (- y x)])
(+ (random result) x)))

关于scheme - 放! Racket 模块错误中的未绑定(bind)标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34954101/

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