[Hasskell]Основы IO и пример из Yaht
От: leonidvp Россия  
Дата: 12.02.09 12:00
Оценка:
Здравствуйте!

В YAHT есть простой пример — функция считывания списка ввыодимых пользователем строк:

askForWords = do
   putStrLn "Please enter a word:"
   word <- getLine
   if word == ""
       then return []
       else return (word : askForWords )


Он не работает
В принципе, вполне логично:
askForWords имеет тип IO [String]
word имеет тип String
оператор ( имеет тип a->[a]->[a]

Код работает, если его слегка подправить:
askForWords = do
   putStrLn "Please enter a word:"
   word <- getLine
   if word == ""
       then return []
       else do
           w <- askForWors
           return (word : w)


Вопрос: это ошибка в YAHT, или я чего-то недопонимаю?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.