У меня есть список строк, и попробовал это:
ls = [ "banana", "mango", "orange" ]
main = do
map PutStrLn list_of_strings
Это не сработало, и я не могу понять, почему.
ghc print-list.hs
print-list.hs:3:0:
Couldn't match expected type `IO t' against inferred type `[IO ()]'
In the expression: main
When checking the type of the function `main'
Есть намеки? Я полагаю, это связано с тем, что карта возвращает список, а не значение, но я не нашел простого способа исправить это.
Прямо сейчас единственный способ, которым я знаю, чтобы напечатать список строк, - это написать функцию, которая будет перебирать список, печатая каждый элемент (печатать, если список [a], но печатать и повторять, если он (a: b) )). Но было бы намного проще использовать карту ...
Спасибо!