我想知道为什么由于没有使用任何模式而出现此错误。在我的情况下,我在filterM
的{{1}}上没有匹配模式。
错误
lambda
我只想过滤给定目录中的文件
代码
Pattern syntax in expression context: x -> not (x `elem` [".", ".."])
|
20 | filterFiles =filterM (x->not (x `elem` [".",".."]))
| ^^^^^^^^^^^^^^^^^^^^^^^
答案 0 :(得分:6)
您忘了包含lambda。
filterFiles =filterM (\x-> not ( x `elem` [".",".."]))
^ here
答案 1 :(得分:4)
函数filterFiles
不涉及IO
,使用filter
可能适用于:
filterFiles::[String]->[String]
filterFiles = filter (\x-> not ( x `elem` [".",".."]))
否则,使用flip
和notElem
可能会更简洁一些,而不是使用lambda表达式:
filterFiles = filter (flip notElem [".",".."])