Een zeer eenvoudige manier om strings te comprimeren bestaat eruit om herhaalde karakters voor te stellen door koppels van het karakter en een nummer dat voorstelt hoeveel keer het karakter herhaald moet worden. Een voorbeeld van zulke compressie en decompressie is hieronder weergegeven.
*Main> encode "aabbccddeeffabcd"
[(2,'a'),(2,'b'),(2,'c'),(2,'d'),(2,'e'),(2,'f'),(1,'a'),(1,'b'),(1,'c'),(1,'d')]
*Main> decode (encode "aabbcccddd")
"aabbcccddd"
Implementeer de encode
en decode
functies.
flatten
en pack
kan je zeker goed gebruiken in deze oefening.