我试图按照每个元素第一个项的值对此列表中的元素进行分组,但无法使其工作。
我想要得到 [("A",[("EXP1",5),("EXP2", 9)]),("B",[("EXP15",8),("EXP24", 4)])] ,但是我遇到了错误:
import Data.Function (on)
import Data.List (sortBy, groupBy)
import Data.Ord (comparing)
myGroupElem :: (Eq a, Ord a) => [(a, b, c)] -> [(a, [(b,c)])]
myGroupElem = map (\l -> (fst . head $ l, map (b,c) l)) . groupBy ((==) `on` fst)
. sortBy (comparing fst)
lData = [("A", "EXP1", 5),("A", "EXP2", 9),("B", "EXP15", 8),("C", "EXP16", 7),("B", "EXP24", 4)]
main = do
print $ myGroupElem lData