- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试生成一些随机数和新的随机数生成器。我还没有走得太远,但我遇到了这个错误,而且我不明白如何修复它。
我的代码是:
getGenerator :: RandomGen g => g
getGenerator = snd (next (mkStdGen 42))
我得到的错误是:
Couldn't match expected type ‘g’ with actual type ‘StdGen’
‘g’ is a rigid type variable bound by
the type signature
有人可以解释一下我做错了什么吗?我还尝试将 RandomGen 切换为 StdGen 但出现错误:
‘StdGen’ is applied to too many type arguments
我看到 mkStdGen 创建了一个 StdGen,但根据 wiki 页面,StdGen 是 RandomGen 的一个实例。有没有办法以某种方式将 StdGen 转换为 RandomGen?我现在真的很困惑。
最佳答案
问题在于您的声明比实际定义更笼统。您的声明声称 getGenerator
的类型可以是实现 RandomGen
类的任何类型。假设我有这样一个类型,MyRandomGen
。那么我应该能够写出类似的东西
let v = getGenerator :: MyRandomGen
并将 v
绑定(bind)到 MyRandomGen
值。
但是,您的实际定义并不那么笼统。 snd (next (mkStdGen 42))
的值始终为 StdGen
类型,而不是任意实例 g
RandomGen
。
解决方案是诚实地了解 getGenerator
的计算结果。
getGenerator :: StdGen
getGenerator = snd (next (mkStdGen 42))
关于haskell - 如何解决 RandomGen 的 "rigid type variable bound by"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36633119/
我正在编写一个简单的确定性随机数生成器,基于 xorshift 。这里的目标不是获得密码安全或统计上完美的(伪)随机数生成器,而是能够跨编程语言获得相同的确定性半随机数序列。 我的 Haskell 程
查看RandomGen#next ,文档说: next :: g -> (Int, g) The next operation returns an Int that is uniformly dis
所以我在使用这个 p5js 脚本时遇到了一些麻烦。我收到一个 TypeError 消息,说“this.randomGenes 不是一个函数”,但对我来说它看起来像是一个函数......我不明白错误来自
似乎在 Haskell 中,split 的行为在很大程度上取决于所选择的(伪)随机数生成器 (PRNG)。通过查看 API 中生成随机数的各种方式,我被 split 吸引了。 假设我们采用相对较新的
这个问题已经有答案了: Return specific type within Haskell (3 个回答) 已关闭 7 年前。 我正在尝试生成一些随机数和新的随机数生成器。我还没有走得太远,但我遇
我是一名优秀的程序员,十分优秀!