我有一個函數來計算沒有時間每個單詞串重複:不能IO在哈斯克爾
keywords :: String -> [String]
keywords = words . map (\x -> if isAlpha x then x else ' ')
count :: Ord a => [a] -> [(a,Int)]
count = map (head &&& length) . group . sort
wordcount = count . keywords
它完美的作品。
我想使用IO讀取一個文本文件作爲此函數的輸入。我做了這樣的編碼:
wordcou :: IO()
wordcou =
do
putStr "Please text file name :"
textfile <- getLine
text <- readFile textfile
let result = wordcount text
putStr result
IO函數給我一個錯誤。任何人都可以幫我解決這個錯誤嗎?
誤差
ERROR file:.\project.hs:194 - Type error in application
*** Expression : putStr result
*** Term : result
*** Type : [([Char],Int)]
*** Does not match : [Char]
「..給我一個錯誤」。您可以*請*發佈*確切*錯誤信息,你會得到? –
好的..我添加了錯誤.. – 2964349
wordcount文本不返回一個字符串。所以putStr結果將不起作用。 wordcou的類型也是錯誤的,它返回IO()。 – kaan