3

我正在尝试获得一个生成随机数的函数,这就是我到目前为止所拥有的:

getRandom :: Int -> Int -> Int
getRandom x y = do
    z <- randomRIO( x, y )

这段代码给了我以下错误:

The last statement in a 'do' block must be an expression

现在我明白了这个错误,但我不明白解决方案。

我试过了:

return z

但它不起作用。

PS我对Haskell非常陌生

4

1 回答 1

5

do块不能以绑定结束。他们脱糖到类似的东西

getRandom = randomRIO (x, y) >>= \z ->

这显然是一个错误!如果你只想使用的结果randomRIO

getRandom x y = randomRIO (x, y)

工作正常。此外,如果您只想要一个随机数,

getRandom :: IO Integer
getRandom = randomIO

作品。

于 2013-11-14T21:01:38.000 回答