gpt4 book ai didi

haskell - Haskell 中更好的数据流读取

转载 作者:行者123 更新时间:2023-12-02 16:32:37 27 4
gpt4 key购买 nike

我正在尝试解析一个输入流,其中第一行告诉我有多少行数据。我最终得到了以下代码,它可以工作,但我认为还有更好的方法。有没有?

main = do
numCases <- getLine
proc $ read numCases

proc :: Integer -> IO ()
proc numCases
| numCases == 0 = return ()
| otherwise = do
str <- getLine
putStrLn $ findNextPalin str
proc (numCases - 1)

注意:代码解决了Sphere问题https://www.spoj.pl/problems/PALIN/但我不认为发布其余代码会影响这里要做什么的讨论。

最佳答案

使用replicatesequence_

main, proc :: IO ()

main = do numCases <- getLine
sequence_ $ replicate (read numCases) proc

proc = do str <- getLine
putStrLn $ findNextPalin str

sequence_ 获取一系列操作,并按顺序一个接一个地运行它们。 (然后它会丢弃结果;如果您对操作的返回值感兴趣,则可以使用sequence。)

replicate n x 创建一个长度为 n 的列表,每个元素为 x。因此,我们使用它来构建我们想要运行的操作列表。

关于haskell - Haskell 中更好的数据流读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868401/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com