ATE meia noite de 10/9
dada a lista ( de caracteres)
"aaabbaasxbbbb"
vamos definir uma lista comprimida cujos elementos são pares (item, quantidade)
onde quantidade
é o número de vezes que o item
aparece sequenciamente na lista. Assim, a compressão dessa lista seria:
[('a',3),('b',2),('a',2),('s',1),('x',1),('b',4)]
comprime :: Eq a => [a] -> [(a,Int)]
comprime [3,3,3,4,5,6,5,5,5,5,7]
=> [(3,3),(4,1),(5,1),(6,1),(5,4),(7,1)]
descomprime
que é o inverso de comprimedescomprime [(3,3),(4,1),(5,1),(6,1),(5,4),(7,1)]
==> [3,3,3,4,5,6,5,5,5,5,7]