20 lines
535 B
Plaintext
20 lines
535 B
Plaintext
* # Encode RLE
|
|
define('rle(str)c,n') :(rle_end)
|
|
rle str len(1) . c :f(return)
|
|
str span(c) @n =
|
|
rle = rle n c :(rle)
|
|
rle_end
|
|
|
|
* # Decode RLE
|
|
define('elr(str)c,n') :(elr_end)
|
|
elr str span('0123456789') . n len(1) . c = :f(return)
|
|
elr = elr dupl(c,n) :(elr)
|
|
elr_end
|
|
|
|
* # Test and display
|
|
str = 'WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW'
|
|
output = str;
|
|
str = rle(str); output = str
|
|
str = elr(str); output = str
|
|
end
|