Burrows–Wheeler transform: Difference between revisions

m
(→‎{{header|zkl}}: added code)
Line 77:
_assert_(not str.holds(special), "String cannot contain char \"%s\"".fmt(special) );
str=str.append(special);
str.len().pump(List().merge,'wrap(n){ String(str[n,*],str[0,n]) }).sort()
.pump(String,T("get",-1)); // last char of each "permutation"
}
Line 97:
foreach test in (tests){
enc:=BWT.encode(test);
println("%s\n --> %s\n --> %s".fmt(test,enc,BWT.decode(enc)));
}</lang>
{{out}}
<pre>
banana --> annb$aa --> banana
-->annb$aa
appellee --> e$elplepa --> appellee
-->banana
dogwood --> do$oodwg --> dogwood
appellee
TO BE OR NOT TO BE OR WANT TO BE OR NOT?
-->e$elplepa
--> OOORREEETTR?TW BBB ATTT NNOOONOO$
-->appellee
--> TO BE OR NOT TO BE OR WANT TO BE OR NOT?
dogwood
SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES
-->do$oodwg
--> STEXYDST.E.IXXIIXXSSMPPS.B..EE.$.USFXDIIOIIIT
-->dogwood
--> SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES
TO BE OR NOT TO BE OR WANT TO BE OR NOT?
--> OOORREEETTR?TW BBB ATTT NNOOONOO$
--> TO BE OR NOT TO BE OR WANT TO BE OR NOT?
SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES
--> STEXYDST.E.IXXIIXXSSMPPS.B..EE.$.USFXDIIOIIIT
--> SIX.MIXED.PIXIES.SIFT.SIXTY.PIXIE.DUST.BOXES
</pre>
Anonymous user