我想要类似的东西
splitBy pred list = ( filter pred list, filter (not . pred) list )
Run Code Online (Sandbox Code Playgroud)
但一次通过.
Nik*_* B. 12
您正在寻找以下partition功能Data.List:
partition :: (a -> Bool) -> [a] -> ([a], [a])
Run Code Online (Sandbox Code Playgroud)
它可以使用折叠很好地实现:
splitBy pred = foldr f ([], [])
where f x ~(yes, no) = if pred x then (x : yes, no)
else (yes, x : no)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |