【发布时间】:2015-07-08 10:17:56
【问题描述】:
我正在尝试创建一个程序,为目录(及其子目录)中的每个文件添加一个简单的文本标题。我需要使用 ghc 的内置函数来执行此操作(我无法访问 cabal)。
函数的类型签名是
getRecursiveContents :: FilePath -> IO [FilePath]
addHeaderToFile :: String -> FilePath -> IO ()
这些都可以独立工作,但由于类型的原因,我很难将这两个函数结合使用。我认为使用地图是正确的方法,但到目前为止我还没有成功。
addHeaderToMultiple :: String -> IO [FilePath] -> IO ()
addHeaderToMultiple header files = map (addHeaderToFile header) files
我知道由于使用的类型,这将不起作用,但我还没有找到解决方法。
【问题讨论】:
-
看看
mapM_ :: Monad m => (a -> m b) -> [a] -> m ()。