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

27 lines
467 B
Text
Raw Permalink Normal View History

2019-09-12 10:33:56 -07:00
rp(list l)
2013-04-10 23:57:08 -07:00
{
2019-09-12 10:33:56 -07:00
integer a, i;
2013-04-10 23:57:08 -07:00
data b;
2019-09-12 10:33:56 -07:00
index x;
2013-04-10 23:57:08 -07:00
2019-09-12 10:33:56 -07:00
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);
2013-04-10 23:57:08 -07:00
}
2019-09-12 10:33:56 -07:00
b.delete(-1);
2013-04-10 23:57:08 -07:00
}
main(void)
{
2019-09-12 10:33:56 -07:00
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");
2013-04-10 23:57:08 -07:00
2019-09-12 10:33:56 -07:00
0;
2013-04-10 23:57:08 -07:00
}