我正在尝试将列表 ["a","b","c","c"] 转换为 haskell 中的集合,例如: [("a",1),("b",1),( "c",2)]。我不想使用地图。我的功能如下所示:
-- bagMyItem
bagMyItem :: Eq g => [g] -> Bag g -> Bag g
bagMyItem (h:t) bag
| h==q = (q,v+1):(listToBag t bag)
| null rBag = bag ++ [(h,1)]
| otherwise = (q,v):(listToBag (h:t) rBag)
where ((q,v):rBag) = bag
我做错了什么,还是我错过了任何情况?