主要功能出错

tur*_*tle 2 haskell

我是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中,类型110默认为Integer,但编译器没有相同的默认规则.

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

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

main = newStdGen >>= print . take 5 . randomRs (1::Int,10)
Run Code Online (Sandbox Code Playgroud)