tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
27
Task/Run-length-encoding/Icon/run-length-encoding.icon
Normal file
27
Task/Run-length-encoding/Icon/run-length-encoding.icon
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue