【发布时间】:2020-11-09 21:08:50
【问题描述】:
我正在尝试根据每个元素的第一项的值对该列表的元素进行分组,但无法使其工作。
我正在尝试获取 [("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
【问题讨论】:
标签: haskell