我正在尝试生成一个生成随机数的函数,这是我到目前为止所做的:
getRandom :: Int -> Int -> Int
getRandom x y = do
z <- randomRIO( x, y )
Run Code Online (Sandbox Code Playgroud)
此代码给出了以下错误:
The last statement in a 'do' block must be an expression
Run Code Online (Sandbox Code Playgroud)
现在我理解了这个错误,但我不明白解决方案.
我试过了:
return z
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
PS我对Haskell非常新
阿do块不能在绑定结束.他们不喜欢这样的东西
getRandom = randomRIO (x, y) >>= \z ->
Run Code Online (Sandbox Code Playgroud)
这显然是一个错误!如果你想只使用结果randomRIO
getRandom x y = randomRIO (x, y)
Run Code Online (Sandbox Code Playgroud)
工作良好.另外,如果你只想要一个随机数,
getRandom :: IO Integer
getRandom = randomIO
Run Code Online (Sandbox Code Playgroud)
作品.