procedure main(arglist) s := "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW" write(" s=",image(s)) write("s1=",image(s1 := rle_encode(s))) write("s2=",image(s2 := rle_decode(s1))) if s ~== s2 then write("Encode/Decode problem.") else write("Encode/Decode worked.") end procedure rle_encode(s) es := "" s ? while c := move(1) do es ||:= *(move(-1),tab(many(c))) || c return es end procedure rle_decode(es) s := "" es ? while s ||:= Repl(tab(many(&digits)),move(1)) return s end procedure Repl(n, c) return repl(c,n) end