So lately I have a list of strings, and need to independently go over each one and perform some IO function.
IO
So basically what I have is this:
Your goOverList function can be written mapM_ putStrLn where mapM_ is a function in the standard Prelude.
goOverList
mapM_ putStrLn
mapM_
You can also simplify your own implementation:
goOverList :: [String] -> IO () goOverList [] = return () goOverList (x:xs) = do putStrLn x goOverList xs