如何在Haskell中做同样的事情n次

Ric*_*ung 4 haskell

对不起,如果这是一个非常愚蠢的问题,但我已经阅读了一本书和大部分关于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)

是否有内置功能已经这样做了?

Nic*_*iou 5

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-