Я пытаюсь создать программу, которая добавляет простой текстовый заголовок для каждого файла в каталоге (и его подкаталогах). Мне нужно сделать это, просто используя встроенные функции из ghc (я не могу получить доступ к cabal).Пакетное изменение файлов Haskell
Сигнатура типа функции являются
getRecursiveContents :: FilePath -> IO [FilePath]
addHeaderToFile :: String -> FilePath -> IO()
Они оба работают независимо друг от друга тонкой, но я изо всех сил, чтобы использовать эти две функции в сочетании из-типов. Я предположил, что использование карты было бы правильным способом сделать это, но до сих пор я не увенчался успехом.
addHeaderToMultiple :: String -> IO [FilePath] -> IO()
addHeaderToMultiple header files = map (addHeaderToFile header) files
Я понимаю, что это не сработает из-за используемых типов, но я не нашел способ исправить это.
Посмотрите 'mapM_ :: Monad m => (a -> mb) -> [a] -> m()'. –