主要功能出错
问题描述:
我是Haskell的新手,仍在努力锻炼一些语法/成语。任何人都可以解释我在这段代码中做错了什么吗? main
应打印出5个随机数列表。这可以在GHCi中找到,但不在文件中。我错过了什么?主要功能出错
import System.Random
main = newStdGen >>= print . take 5 . randomRs (1,10)
答
当你编译这个,你
暧昧类型的约束 变量'A0' ....
这是因为在ghci中的1
类型10
默认为整数,但编译器不具有相同的默认规则。
由于您在做任何事情之前先打印它们,因此无法推断出类型。
所有你需要做的就是添加一个明确的类型签名,例如
main = newStdGen >>= print . take 5 . randomRs (1::Int,10)
描述问题时,请更具体的不是“它不工作”。它是否编译?如果是这样,它会运行吗?它会产生比您预期的不同的输出吗? – 2013-04-30 21:52:08