哈斯克尔大师。小心向我展示一些更多的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