即时通讯试图制作一个程序,应该从文件中逐行读取并检查其是否为palindrom(如果是),然后打印。
我真的是Haskell的新手,所以我唯一能做的就是使用以下代码打印出每一行:
main :: IO()
main = do
filecontent <- readFile "palindrom.txt"
mapM_ putStrLn (lines filecontent)
isPalindrom w = w==reverse w
问题是,我不知道如何一行一行地检查行是否是palindrom(请注意,在我的文件中,每一行仅包含一个单词)。谢谢你的帮助。
最佳答案
看看filter
函数。您可能不希望将所有处理都放在一行上,而是使用let表达式。另外,您的缩进不可用:
main :: IO ()
main = do
filecontent <- readFile "palindrom.txt"
let selected = filter ... filecontent
...
关于haskell - 如何从Haskell中的文件逐行读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36850967/