Haskell: нельзя использовать «map putStrLn»?

У меня есть список строк, и попробовал это:

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)). Но это было бымного проще просто использовать карту ...

Спасибо!

Ответы на вопрос(0)

Ваш ответ на вопрос