RosettaCodeData/Task/Range-extraction/Aime/range-extraction.aime

27 lines
467 B
Plaintext

rp(list l)
{
integer a, i;
data b;
index x;
a = l[0];
x[a] = a;
for (, a in l) {
x[a == x.back + 1 ? x.high : a] = a;
}
for (i, a in x) {
b.form(a - i < 2 ? a - i ? "~,~," : "~," : "~-~,", i, a);
}
b.delete(-1);
}
main(void)
{
o_(rp(list(0, 1, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39)),
"\n");
0;
}