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

时间:2015-05-10 17:05:09

标签: 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 ()

是否还没有内置功能?

1 个答案:

答案 0 :(得分:5)

来自forM_

Control.Monad是一种方式。

示例:

import Control.Monad (forM_) 

main = forM_ [1..10] $ \_ -> do
    print "We'll do this 10 times!"

请参阅此处的文档

http://hackage.haskell.org/package/base-4.8.0.0/docs/Control-Monad.html#v:forM-95-