我无法弄清楚如何生成随机数.
以下是我要按照这样做的方法:
main :: IO ()
main = do
let
g <- getStdGen
bla = randomRs (0, 360) g
Run Code Online (Sandbox Code Playgroud)
还尝试过:
main :: IO ()
main = do
let
r <- randomIO
Run Code Online (Sandbox Code Playgroud)
然后:
输入"< - "的解析错误也许这个语句应该在'do'块中?
我强烈推荐许多优秀的免费Haskell教程之一,例如Learn You A Haskell或Real World Haskell.
您可以在此处找到有关do符号的更多信息.
要专门回答您的问题,您滥用let关键字和do符号.基本规则是:如果答案是monad,你应该使用<-no let.如果值不在monad中,请写入let bla = ....您可以连续编写多个此类语句,而无需复制let关键字:
do
x <- y :: m a
let z = z1
z' = z2
...
w <- w' :: m b
z <- z' :: m c
...
Run Code Online (Sandbox Code Playgroud)
你的代码应该更像:
main :: IO ()
main = do
g <- getStdGen
let bla = randomRs (0,360) g
Run Code Online (Sandbox Code Playgroud)
更好的选择是使用MonadRandom完全隐藏生成器(状态):
include Control.Monad.Random
main :: IO ()
main = do
bla <- getRandomR (0,360)
Run Code Online (Sandbox Code Playgroud)