Итак, надо написать программу, которая считает файл с текстом, а потом поменяет слова местами и выведет на экран.
написал такое:
import System.Environment
main :: IO ()
main = do
(path:_) <- getArgs
contents <- readFile path
putStrLn $ reverseWords $ words contents
reverseWords :: [[Char]] -> [Char]
reverseWords [] = []
reverseWords (x:[]) = x
reverseWords (x:xs) = reverseWords xs ++ " " ++ x
но оно выводит файл в одну строку. если же убрать функции и написать
putStrLn contents