您好我正在尝试将正则表达式与FilePath
匹配来过滤我的文件列表
import Text.Regex.Posix
import System.FilePath
escapePath path = foldr (&&) True $ map (\pat -> not $ (path =~ pat :: Bool)) patterns
where
patterns = ["\\.", "\\.\\.", {-- So on --}]
我相信map
和folds
会在返回值之前遍历整个列表。
我可以通过做这样的事情来避免使用折叠
escapePath path = not $ elem True (map (\pat -> (path =~ pat :: Bool)) patterns)
where
patterns = ["\\.", "\\.\\.", {-- continued --}]
但是在搜索值
之前,我仍会匹配所有模式的路径如何通过在第一场比赛中返回值来提高效率?