我是Haskell的新手,仍在努力锻炼一些语法/习语.谁能解释一下我在这段代码中做错了什么?main应该打印出5个随机数的列表.这可以在GHCi中找到,但不能在文件中找到.我错过了什么?
import System.Random
main = newStdGen >>= print . take 5 . randomRs (1,10)
Run Code Online (Sandbox Code Playgroud)
And*_*ewC 14
当你编译它时,你会得到
约束中的模糊类型变量`a0'....
这是因为在ghci中,类型1和10默认为Integer,但编译器没有相同的默认规则.
由于您在执行任何其他操作之前打印它们,因此无法推断出类型.
例如,您需要做的就是添加显式类型签名
main = newStdGen >>= print . take 5 . randomRs (1::Int,10)
Run Code Online (Sandbox Code Playgroud)