有人可以向我解释为什么在使用时ghci
我必须“重新装箱”单子返回的值吗?
listAction=listDirectory "D:\\"
lenAction=listAction>>=length
错误:
Couldn't match type `Int' with `IO b0'
Expected type: [FilePath] -> IO b0
Actual type: [FilePath] -> Int
我不明白我的逻辑在哪里有缺陷:
- 使用
listAction
给了我一个IO [FilePath]
listAction
我将to的值拆箱并将[FilePath]
其提供给length
- 现在不应该
length
只是将结果打印到控制台作为纯函数吗?如果我说的话不一样length [1,2,3]
吗?
为什么我必须再次装箱?不是类型单子的结果:[FilePath]
如果是,为什么它不能打印结果?
lenAction=list>>=return . length