RosettaCodeData/Task/Run-length-encoding/Picat/run-length-encoding-2.picat
2023-07-01 13:44:08 -04:00

4 lines
186 B
Text

rle2(S) = RLE =>
Ix = [1] ++ [I : I in 2..S.len, S[I] != S[I-1]] ++ [S.len+1],
Diffs = diff(Ix),
RLE = [Diffs[I].to_string() ++ S[Ix[I]].to_string() : I in 1..Diffs.len].join('').