groupBy在元组的snd元素上

swa*_*lay 1 haskell functional-programming

所以我想用它groupBy来根据snd元素对元组列表进行分组.每个具有相同snd元素的元组都应该在同一个列表中

group ::  [(Int,Int)] -> [[(Int,Int)]]
group = groupBy (\a b -> snd a == snd b) lijst
Run Code Online (Sandbox Code Playgroud)

一个groupBy列表[(1,2),(8,9),(5,2),(9,2),(3,9),(1,1)]应该返回 [[(1,2),(5,2),(9,2)],[(8,9),(3,9)],[1,1]].

然而它又回来了 [[(1,2)],[(8,9)],[(5,2),(9,2)],[(3,9)],[(1,1)]].

如何使此功能起作用?

typ*_*ris 5

阅读groupBy的文档,我们可以参考group的文档,其中说明了

group函数接受一个列表并返回一个列表列表,以便结果的串联等于参数.

这是一种不太明显的说法:"我们只将相等的,相邻的元素分组."

所以列出你的清单.