我有多个调用函数的模块:my-random 该函数采用0或1个参数。我想要做的是将结果写入对该函数的所有调用并将其保存在文件中,然后重新运行该程序,而是提供该文件以便使用这些随机数。
这是我保存函数输出的原因:
(define random-port (open-output-file "random-numbers.rktl" #:exists 'replace))
(define (my-random [x #f])
(define y (if x (random0 x) (random0)))
(displayln y random-port)
y)
这并没有保存所有数字,因为我应该在完成所有调用后关闭端口,但我不想在特定点关闭它。反正有吗?
其次,该功能是我们如何取回随机数并重新使用它们。问题是我会得到一个arity不匹配,因为我的随机有0或1个参数,而且,这可以修复吗?
(require racket/generator)
(define my-random
(generator
(_)
(for ([x (file->list "random-numbers.rktl")])
(yield x))))
非常感谢你!
答案 0 :(得分:0)
通过为每个使用随机数的函数生成一个文件来解决,而不是让一个文件包含整个程序的随机数。