我尝试编写一个函数,在第一个和第二个参数之间返回一个随机数 .
(随机 - 40 80之间)
应该给出40到80之间的随机数 . 这是代码:
(define (random-between x y)
((set! result (random y))
(if (> result x)
result
(random-between x y))))
我想当函数第二次递归运行时,随机函数会创建一个新的结果,并再次测试,如果它高于x,则输出为最终结果 .
这是我第一次使用“套装!”它给了我这个错误:
set!:模块中的未绑定标识符:result
其他类似的问题并没有帮助我找到解决方案 .
1 回答
我将回答我自己的问题,因为我希望其他人回答这个问题 . 不是狡猾的答案或预订建议 .
是的,您需要使用具有以下语法的let:
这是没有递归速度效率的代码 .