RosettaCodeData/Task/Move-to-front-algorithm/Aime/move-to-front-algorithm.aime

45 lines
628 B
Text
Raw Permalink Normal View History

2018-06-22 20:57:24 +00:00
text
decode(list l)
{
2019-09-12 10:33:56 -07:00
integer c, e;
data al, s;
2018-06-22 20:57:24 +00:00
al = "abcdefghijklmnopqrstuvwxyz";
2019-09-12 10:33:56 -07:00
for (, e in l) {
s.append(c = al[e]);
al.delete(e).insert(0, c);
2018-06-22 20:57:24 +00:00
}
s;
}
list
encode(text s)
{
integer c, e;
2019-09-12 10:33:56 -07:00
data al;
2018-06-22 20:57:24 +00:00
list l;
al = "abcdefghijklmnopqrstuvwxyz";
2019-09-12 10:33:56 -07:00
for (, c in b_draft(s)) {
l.append(e = al.place(c));
al.delete(e).insert(0, c);
2018-06-22 20:57:24 +00:00
}
l;
}
integer
main(void)
{
2019-09-12 10:33:56 -07:00
for (, text s in list("broood", "bananaaa", "hiphophiphop")) {
2018-06-22 20:57:24 +00:00
list l;
l = encode(s);
l.ucall(o_, 1, " ");
o_(": ", decode(l), "\n");
}
0;
}