haskell - 主要功能错误

标签 haskell

我是 Haskell 新手,仍在尝试练习一些语法/习惯用法。谁能解释一下我在这段代码中做错了什么? main 应该打印出 5 个随机数的列表。这可以在 GHCi 中查找,但不能在文件中查找。我错过了什么?

import System.Random

main = newStdGen >>= print . take 5 . randomRs (1,10)

最佳答案

当你编译这个时,你会得到

Ambiguous type variable `a0' in the constraints ....

这是因为在ghci中,110的类型默认为Integer,但编译器没有相同的默认规则。

由于您在执行其他操作之前打印它们,因此它无法推断出类型。

例如,您需要做的就是添加显式类型签名

main = newStdGen >>= print . take 5 . randomRs (1::Int,10)

关于haskell - 主要功能错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309432/

相关文章:

haskell - 在类型化模板 Haskell 中使用约束

haskell - 关于非单射类型函数的简单类型族示例错误

haskell - 输入别名和 “instance … where”

haskell - 在 SKI 组合器中表达 XOR

haskell - 使用foldr和函数应用($)解释查找列表的第K个元素

使用解析器组合器解析具有函数应用的表达式语法(左递归)

haskell - 非法绑定(bind)内置语法 : `:`

haskell - 从 Reader Bool 到 Maybe 的自然转换

haskell - 使事件序列在酸性状态下原子化

haskell - 为什么尾递归模数可以优化?