哈斯克爾大師。小心向我展示一些更多的haskellian方法來執行這個任務,這並不受我對haskell和FP的有限知識的限制。分組重複
groupDups [] = []
groupDups [email protected](x:xs) = groupDups' x list
where groupDups' _ [] = []
groupDups' x list = let (m,r) = partition (x ==) list
in m : groupDups r
> groupDups [1,2,3,4,1,2,3,4,4,3,2,1,4,3,2,1]
[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]]
乾杯,速度快得多,看起來像我在思考的事情再次。但是,現在我需要爲我的自定義數據類型實現一個Ord實例。 – nipuL
@nipuL,或者你可以使用'sortBy'而不是排序。那麼你只需要'Eq'代表'group'。 –
'sortBy'仍然需要一個函數,該函數返回給定兩個鍵的'Ordering'。 – pat