Групповые значения подсписка на основе эквивалентных сумм с помощью Haskell

Я пытаюсь выучить Haskell и пытаюсь создать функцию, которая принимает список списков и группирует подсписок эквивалентными суммами. Это не домашнее задание.

import Data.List
let x = [[1,2],[2,1],[5,0],[0,3],[1,9]]
let groups = groupBy (\i j -> sum i == sum j) x

Я получаю этот вывод в GHCi:

[[[1,2],[2,1]],[[5,0]],[[0,3]],[[1,9]]]

Я получаю [[1,2],[2,1]]группируя вместе, но не с [0,3]. ]. Почему это?

Я подозреваю, что мне нужно использовать map, но я не могу заставить его работать.

5
задан Greg Bacon 31 March 2012 в 16:31
поделиться