У меня есть функция для подсчета не раз каждое слово повторяется в строке:Не может IO в Haskell
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
, который работает отлично.
Я хочу прочитать текстовый файл в качестве ввода этой функции с помощью ввода-вывода. Я сделал кодировку следующим образом:
wordcou :: IO()
wordcou =
do
putStr "Please text file name :"
textfile <- getLine
text <- readFile textfile
let result = wordcount text
putStr result
Функция ввода-вывода дает мне ошибку. Может ли кто-нибудь помочь мне исправить эту ошибку, пожалуйста?
ошибка
ERROR file:.\project.hs:194 - Type error in application
*** Expression : putStr result
*** Term : result
*** Type : [([Char],Int)]
*** Does not match : [Char]
«.. дает мне ошибку». Не могли бы вы * прокомментировать * сообщение * точное * сообщение об ошибке, которое вы получили? –
ok .. я добавил ошибку .. – 2964349
wordcount текст не возвращает строку. Таким образом, результат putStr не будет работать. Тип для wordcou также неверен, он возвращает IO(). – kaan