На этот вопрос уже есть ответ здесь:
Подсчет всех элементов в списке в Haskell выполняется одной строкой:
count xs = toList (fromListWith (+) [(x, 1) | x <- xs])
Вот пример использования:
*Main> count "haskell scala"
[(' ',1),('a',3),('c',1),('e',1),('h',1),('k',1),('l',3),('s',2)]
Можно ли так же элегантно выразить эту функцию и в Scala?