Ali*_*Ali 1 haskell file filter
已经提出了类似的问题,但手头有一个列表: 在Haskell中按长度过滤列表项
我已经知道如何从文件中获取单词列表
getWords path = do contents <- readFile path
                   return (lines contents)
然后我可以过滤它以获得特定长度的单词,但是......
我想知道的是,如果有一种方法(最好不是无点样式 - 除非必要)在将文件保存为单词列表之前按长度过滤文件.
例如,words.txt是每行1个单词的文件.
filteredWords <- filter (\x -> length x == 3) *Read words.txt in place*
使用IO也是一个实例的事实Functor
filteredWords <- fmap (filter (\x -> length x == 3)) $ getWords path
由于您在不使用的情况下询问了如何执行此操作getWords:您可以使用函数组合运算符..
filteredWords <- fmap (filter (\x -> length x == 3) . lines) $ readFile path
我想readFile是在Prelude,如果不是那么它会在System.IO