Burrows–Wheeler transform: Difference between revisions
→{{header|Perl 6}}: Remove some unnecessary variables
(Added C) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Remove some unnecessary variables) |
||
Line 334:
{{works with|Rakudo|2018.06}}
<lang perl6># STX
# Using a visible character here for ease of viewing.
constant \STX = '👍';
# Burrows-Wheeler transform
sub transform (Str $s is copy) {
$s = STX ~ $s
▲ (^$l).map({ $s.comb.list.rotate: $_ }).sort[*;*-1].join
}
# Burrows-Wheeler inverse transform
sub ɯɹoɟsuɐɹʇ (Str $s) {
my @t
@t = ($s.comb Z~ @t).sort for
@t.first( *.starts-with: STX ).substr(1
}
# TESTING
for |<BANANA dogwood SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES>,
Line 366 ⟶ 364:
{{out}}
<pre>Original: BANANA
Transformed:
Inverse transformed:
Original: dogwood
Transformed:
Inverse transformed:
Original: SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES
Transformed: TEXYDST.E.IXIXIXXSSMPPS.B..E.👍.
Inverse transformed: SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.
Original: TO BE OR NOT TO BE OR WANT TO BE OR NOT?
Transformed: OOORREEETTRTW BBB ATTT NNOOONOO👍
Inverse transformed: TO BE OR NOT TO BE OR WANT TO BE OR NOT?👍
Original: Oops👍
String can't contain STX
=={{header|Python}}==
|