用户将输入多个案例,案例的长度,然后是案例。案件数量每次都不同。用户输入示例:
2
4
"four"
3
"the"
我需要对每种情况做一些事情,但是如何让执行do循环来匹配案例数?
这是我到目前为止所做的:
main = do
numOfCases <- getInteger
caseLength <- getInteger
case <- getLine
putStrLn $ doSomething case
--how do I call the loop exactly once more, but this time without the numOfCases?
感谢。
答案 0 :(得分:2)
使用replicateM_
,它会重复一次给定的动作。您可以从Control.Monad
导入它:
replicateM_ :: (Monad m) => Int -> m a -> m ()
所以你会像这样使用它:
import Control.Monad (replicateM_)
main = do
numOfCases <- readLn
replicateM_ numOfCases $ do
caseLength <- readLn
str <- getLine
... -- do other stuff