主要功能出错

时间:2013-04-30 21:41:06

标签: haskell

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

import System.Random

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

1 个答案:

答案 0 :(得分:14)

编译时,你得到

  

约束中的模糊类型变量`a0'      ....

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

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

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

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