对不起,如果这是一个非常愚蠢的问题,但我已经阅读了一本书和大部分关于Haskell的书,并且似乎不记得任何提出的问题.
我怎么做n次同样的事情?如果你想知道我在做什么,我正在尝试做一些Google Code Jam问题来学习Haskell,输入的第一行为你提供测试用例的数量.既然如此,我需要做n次同样的事情,其中n是测试用例的数量.
到目前为止,我能想到的唯一方法就是编写一个这样的递归函数:
recFun :: Int -> IO () -> IO ()
recFun 0 f = do return ()
recFun n f = do
f
recFun (n-1) f
return ()
Run Code Online (Sandbox Code Playgroud)
是否有内置功能已经这样做了?
forM_来自于Control.Monad一种方式.
例:
import Control.Monad (forM_)
main = forM_ [1..10] $ \_ -> do
print "We'll do this 10 times!"
Run Code Online (Sandbox Code Playgroud)
请参阅此处的文档
http://hackage.haskell.org/package/base-4.8.0.0/docs/Control-Monad.html#v:forM-95-