Я пытаюсь создать функцию, которая принимает список строк и выполняет команду putStrLn
или print
(я думаю, что они в основном эквивалентны, пожалуйста, исправьте меня, если я ошибаюсь, так как я все еще новичок в Haskell) к каждому элементу и распечатать его на экране моего терминала.Я экспериментировал с функцией map
, а также с лямбда / анонимными функциями, так как я уже знаю, как сделать это рекурсивно, но хотел попробовать более сложную нерекурсивную версию.map
возвратил список типа IO (), который не был тем, к чему я стремился, и мои попытки лямбда-функций не соответствовали плану.Основной код был:
test :: [String] -> something
test x = map (\a->putStrLn a) x -- output for this function would have to be [IO()]
Не совсем уверен, каким должен был быть вывод функции, что также вызывало у меня проблемы.
Я думал о создании переменной temp :: String
и добавлял каждую строку к значению temp, а затем putStrLn temp
, но не знал, как это сделать полностью.Я хотя бы с использованием where
был бы жизнеспособным, но я все еще сталкивался с проблемами.Я знаю, как это сделать на таких языках, как Java и C, но я все еще новичок в Haskell.Любая помощь будет оценена.