Haskell输入-如何从stdin读取x个输入



用户将输入多个案例、案例的长度,然后输入案例。病例的数量每次都有所不同。用户输入示例:

2
4
"four"
3
"the"

我需要对每个案例都做些什么,但我如何让execute 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?

谢谢。

使用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

相关内容

  • 没有找到相关文章

最新更新