我剛剛寫了一個小函數,因爲我在Hackage上找不到它,但我非常確定它必須在那裏,而我無法找到它。有人知道它是否存在嗎?灰姑娘功能在哪裏?
我要向你:
cinderella :: (a -> Bool) -> [a] -> ([a], [a])
cinderella f = foldr (\x (a,b) -> if f x then (x:a,b) else (a,x:b)) ([],[])
即相當於:
filterFilter f l = (filter f l, filter (not . f) l)
...但可能不會做兩個遍歷。
http://www.haskell.org/hoogle/?hoogle=(a+-%3E+Bool)+-%3E+%5Ba%5D+-%3E+(%5Ba%5D%2C+%5Ba%5D)'分區功能? – dorchard
「break」僅在最長的匹配前綴處分裂。 – fho
@Florian有3個項目,請檢查所有項目(提示分區是第3個) – jozefg