Jump to content

Run-length encoding: Difference between revisions

(→‎{{header|Euphoria}}: Euphoria example added)
Line 2,146:
true .
</pre>
 
=={{header|Pure}}==
<lang pure>using system;
 
encode s = strcat $ map (sprintf "%d%s") $ encode $ chars s with
encode [] = [];
encode xs@(x:_) = (#takewhile (===x) xs,x) : encode (dropwhile (===x) xs);
end;
 
decode s = strcat [strcat [c|i=1..n] | n,c = parse s] with
parse s::string = regexg item "([0-9]+)([A-Z])" REG_EXTENDED s 0;
item info = val (reg 1 info!1), reg 2 info!1;
end;
 
let s = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW";
let r = encode s; // "12W1B12W3B24W1B14W"
decode r;</lang>
 
=={{header|PureBasic}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.