对于赋值,我必须在Haskell中编写伪随机数生成器。我不确定Haskell有什么可能记得"记住"函数返回的最后一个值,因为伪随机数生成器的定义需要这个值(序列中的下一个数字基于返回的最后一个数字)。
在命令式语言中,我可以保留一个全局变量或其他东西:
int last_rand;
int myRandom()
{
last_rand = (some operation on last_rand);
return last_rand;
}
但是在Haskell,或者至少从我对Haskell的了解中,没有办法存储和更新函数返回的值的可变记录......我怎么能这样做?
答案 0 :(得分:1)
我建议您阅读Chapter 9 Input and Output - Randomness本书的Chapter 13 For a Few Monads More - Making monads和Learn You a Haskell(查找Tasteful stageful computations部分)。
在那里你会找到你的作业的解决方案(或解决方案的关键)。
P上。 S.我给出了书的链接,因为复制粘贴它的内容是没有意义的。直接链接:)