filter1 :: (a -> Bool) -> [a] -> [a]
filter1 p = concat.map box
where box x
| p x = [x]
| otherwise = []
Run Code Online (Sandbox Code Playgroud)
我不明白这个解决方案.map将box应用于列表的所有元素,如果px == True,它将元素放在单个元素的列表中,然后concat取消所有内容?concat在最后还是一个一个地统一一切?
谢谢!我希望有人理解这一点