【发布时间】:2019-03-26 16:17:37
【问题描述】:
仍然是一个初学者,无法在 IO 操作中找出递归循环。假设:
fMinInspect :: Int
fMinInspect = 1
fMaxInspect :: Int
fMaxInspect = 12
-- fNoInspectPerHour :: IO ()
fNoInspectPerHour = do
generateInspect <- randomRIO (fMinInspect,fMaxInspect)
putStrLn ""
我想为我想要随机检查的 10 台机器生成一个列表,然后我可以重复调用一些东西,将 10x fNoInspectPerHour 添加到列表中吗?
我尝试了外部函数,但无法从IO () 获取操作。注意putStrLn 只是为了终止do-block,因为我不需要控制台输出。
附言。也欢迎在没有 putStrLn 的情况下终止 do-block 的建议。
【问题讨论】:
-
只要使用
return ();这是创建IO ()值的最简单方法。 -
否则不清楚你想要什么。你想要一个包含 10 个随机数的列表吗?
-
照原样,
fNoInspectPerHour除了修改随机数生成器的状态之外并没有真正做任何事情;它不会对它生成的随机数做任何事情。
标签: haskell recursion io do-notation