重複の可能性:
リスト内の一意の要素をカウントする リスト
内の各要素の頻度をカウントする
Google、Hoogle、およびこちらを試してみましたが、明らかなものは何も見つかりませんでした。
その旨、取り返せば['a', 'b', 'e', 'c', 'e', 'a', 'e']
いいとか。[('a', 2), ('b', 1), ('c', 1), ('e', 3)]
重複の可能性:
リスト内の一意の要素をカウントする リスト
内の各要素の頻度をカウントする
Google、Hoogle、およびこちらを試してみましたが、明らかなものは何も見つかりませんでした。
その旨、取り返せば['a', 'b', 'e', 'c', 'e', 'a', 'e']
いいとか。[('a', 2), ('b', 1), ('c', 1), ('e', 3)]
カウントにはマップを使用します。
import qualified Data.Map as M
countElems :: (Ord a) => [a] -> M.Map a Int
countElems = M.fromListWith (+) . flip zip (repeat 1)
いいえ。たとえば、使用できます
import Data.List
import Control.Arrow
map (head &&& length) $ group $ sort ['a', 'b', 'e', 'c', 'e', 'a', 'e']
または、MultiSetの使用を検討してください。