Back Story:上周我一直在努力解决这个问题,通过Learn You A Haskell和在线教程阅读,但我无法弄清楚。将字符串拆分成Haskell的列表
我在理解列表理解和递归方面已经取得了很多进展,但是这个问题仍然是一个问题。
问题:我试图将一个字符串(或我认为是一个字符串)转换为一个划分的列表。这是我迄今为止的代码(再次感谢Jan的帮助)。它导入.txt文件的内容。
import System.Environment
main :: IO()
main = do
args <- getArgs
if null args
then putStrLn "usage: ./pattern dataset.txt"
else do contents <- readFile $ head args
putStrLn $ "Filer1: " ++ filterLower(contents)
convert' contents
filterLower :: String -> String
filterLower st = [ c | c <- st, c `elem` ['A'..'Z']]
我试图使我自己的转换函数:
convert' :: String -> [String]
convert' x = (x:[])
它的工作原理,但它并没有对这个问题的工作。
任何帮助,将不胜感激。
错误:这是我经常得到的错误。
Couldn't match expected type `IO()' with actual type `[String]'
In the return type of a call of `convert''
In the expression: convert' contents
In the expression:
do { contents <- readFile $ head args;
putStrLn $ "-: " ++ filterLower contents;
convert' contents }
你遇到的错误/问题是什么? – 2012-01-12 17:46:04
我刚刚在帖子中添加了我的错误。 – 2012-01-12 18:15:52
打电话给'convert''后,你期望发生什么?看起来你只是想把结果扔掉:你不会试图打印它或任何东西。 – dave4420 2012-01-12 18:22:18