Я хочу попросить пользователя о предложении, а затем вернуть предложение обратно, но со словами в отдельных строках.
Например, если пользователь вводит "hello I am tall"
, компьютер возвращает:
hello,
I
am
tall
Я попытался немного начать, но не знаю функции или чего-то, что могуиспользуйте, чтобы попытаться отделить предложение.Мой код пока:
displayWords ::IO ()
displayWords = do putStr "Please enter a line of text"
x <- getLine
mapM print x
Я получаю сообщение об ошибке:
Не удалось сопоставить тип '[()] с' () '
РЕДАКТИРОВАТЬ: Еще одна побочная вещь ... использование mapM_ print (words x)
исправляет то, что я хочу, но есть ли способ напечатать это без кавычек?
EDIT2: Еще одна вещь ... Кто-то вкомментарии помогли ответить на предыдущее редактирование, но если я изменил формат этого файла на
displayWords:: String -> IO Int()
displayWords s = do
mapM_ putStrLn s
return (length s)
, я получу сообщение об ошибке
Невозможно сопоставить тип 'Char' с '[Char] '
Почему putStrLn
здесь не работает?