リスト ["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
私は何か間違ったことをしていますか、それともこれで何か不足していますか?