这是我正在编写的一个特定领域文件输入输出函数的摘录:
let
cp :: FilePath -> IO ()
cp "." = putStr "" -- OUCH!
cp ".." = putStr "" -- CRIKEY!
cp fname = custom logic here...
in mapM_ cp filepaths
我了解
mapM_
让我们丢弃/忽略所有的IO ()
结果,因此我想要一个更干净的替代方案来代替putStr ""
--- 也就是Haskell中写"类型正确的无操作IO(或monad)表达式的规范方式,什么也不做"。从我的初学者阅读中,我有
undefined
在脑海中,虽然这个代码可以编译并且没有问题,但它会产生一个不想要的stdout打印main.hs: Prelude.undefined
(我使用stack runghc main.hs
作为唯一的编码环境---它对于这个很够用,但以上代码将会递归地通过目录树循环:因此现在是学习更好的或者说“正确”的方法的好时机)。
cp "." = return ()
。 - hao