Предположим, я пишу функцию Iterator[String] => Iterator[String]
для добавления счетчика к смежным "повторным" строкам, например:
def foo(it: Iterator[String]): Iterator[String] = ???
foo(Iterator("a", "a", "b", "a", "a", "a", "c", "a")) // ("a", "a1", "b", "a", "a1", "a2", "c", "a")
Я пишу функцию для группировки всех смежных дубликатов (как в длине прогона кодирование) groupRepeated: Iterator[String] => Iterator[List[String]]
и тогда я могу написать foo
тривиально.
Теперь мне интересно, есть ли более простое решение. Что бы вы предложили?
PS Я бы предпочел решение, которое работает с TraversableOnce
вместо Iterator
.