Run-length encoding: Difference between revisions

Updated D Short Functional Version
(→‎{{header|C sharp|C#}}: alternate version with Regex)
(Updated D Short Functional Version)
Line 769:
=={{header|D}}==
===Short Functional Version===
<lang d>import std.algorithm, std.conv, std.array;
 
alias group encode = group;
 
stringauto decode(Group!("a == b", string) enc) {
return enc.map!(t => replicate(""~cast(char)[t[0], ].replicate(t[1]))().join();
}
 
void main() {
immutable s = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWW" ~
auto s = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWW" ~
"WWWWWWWWWWWWWWWWBWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW";
assert(s.encode.decode(encode.equal(s)) == s);
}</lang>
 
===Basic Imperative Version===
<lang d>import std.stdio, std.array, std.conv;