即时通讯试图制作一个程序,应该从文件中逐行读取并检查其是否为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/

10-10 14:27