Run-length encoding: Difference between revisions

Content added Content deleted
(Added Uiua solution)
(Add ed example)
 
Line 2,344: Line 2,344:


</syntaxhighlight>
</syntaxhighlight>

=={{header|ed}}==

An important limitation: only handles repetitions of up to 9 times. Extending the algo for more is trivial, but beyond this example.

<syntaxhighlight lang="sed">
H
,p
g/\([a-zA-Z]\)\1\1\1\1\1\1\1\1/s//9\1/g
g/\([a-zA-Z]\)\1\1\1\1\1\1\1/s//8\1/g
g/\([a-zA-Z]\)\1\1\1\1\1\1/s//7\1/g
g/\([a-zA-Z]\)\1\1\1\1\1/s//6\1/g
g/\([a-zA-Z]\)\1\1\1\1/s//5\1/g
g/\([a-zA-Z]\)\1\1\1/s//4\1/g
g/\([a-zA-Z]\)\1\1/s//3\1/g
g/\([a-zA-Z]\)\1/s//2\1/g
,p
g/9\([a-zA-Z]\)/s//\1\1\1\1\1\1\1\1\1/g
g/8\([a-zA-Z]\)/s//\1\1\1\1\1\1\1\1/g
g/7\([a-zA-Z]\)/s//\1\1\1\1\1\1\1/g
g/6\([a-zA-Z]\)/s//\1\1\1\1\1\1/g
g/5\([a-zA-Z]\)/s//\1\1\1\1\1/g
g/4\([a-zA-Z]\)/s//\1\1\1\1/g
g/3\([a-zA-Z]\)/s//\1\1\1/g
g/2\([a-zA-Z]\)/s//\1\1/g
,p
Q
</syntaxhighlight>

{{out}}

<pre>$ ed -s run-length.input < run-length.ed
Newline appended
aaaaahhhhhhmmmmmmmuiiiiiiiaaaaaa
5a6h7mu7i6a
aaaaahhhhhhmmmmmmmuiiiiiiiaaaaaa</pre>


=={{header|Elena}}==
=={{header|Elena}}==