RosettaCodeData/Task/Run-length-encoding/Maxima/run-length-encoding-1.maxima

7 lines
214 B
Plaintext

rle(a) := block(
[n: slength(a), b: "", c: charat(a, 1), k: 1],
for i from 2 thru n do
if cequal(c, charat(a, i)) then k: k + 1 else (b: sconcat(b, k, c), c: charat(a, i), k: 1),
sconcat(b, k, c)
)$