我想使用随机数生成器。经过研究后我发现,System.Random是唯一的方法(除了自己编程RNG)。有人可以告诉我这个班级的RNG有什么区别吗?我有以下简单的结构:
data Tree = Leaf
| Function Tree Tree
| Lambda Tree
deriving (Show)
当我使用mkStdGen构建随机树时,该树将具有类型
baum :: Int -> Tree
我不能让控制台向我显示树(如果我有一个随机生成的树叫做a,如果我在控制台中键入a,我会收到错误)。 当我使用getStdGen时,该树将具有类型
baum :: IO Tree
我可以让控制台向我展示我的树(如果我有一个随机生成的树叫做a,如果我在控制台中键入a,它会显示树)。
那两个RNG之间有什么区别,并且都让我在Monad中给了一棵树? (为什么mk版本会回馈:Int - > Tree?)
由于数据保护原因,我无法在此处发布我的代码。 我的函数的类型签名是build :: RandomGen g => Int - > Int - > Int - > Int - > g - >树。我想做的就是用一些参数生成我的树。我需要这个用于大学项目。我不知道RNG是最好的选择,如果我不可能只得到一棵树。