RosettaCodeData/Task/Loops-Wrong-ranges/Langur/loops-wrong-ranges.langur
2024-04-19 16:56:29 -07:00

31 lines
1.1 KiB
Text

val .data = qs:block END
start stop increment comment
-2 2 1 Normal
-2 2 0 Zero increment
-2 2 -1 Increments away from stop value
-2 2 10 First increment is beyond stop value
2 -2 1 Start more than stop: positive increment
2 2 1 Start equal stop: positive increment
2 2 -1 Start equal stop: negative increment
2 2 0 Start equal stop: zero increment
0 0 0 Start equal stop equal zero: zero increment
END
var .table = submatches(RE/([^ ]+) +([^ ]+) +([^ ]+) +(.+)\n?/, .data)
val .f = fn(.x) number .x
for .i in 2..len(.table) {
.table[.i] = map [.f, .f, .f, _], .table[.i]
}
for .test in rest(.table) {
val .start, .stop, .inc, .comment = .test
{
val .series = series(.start .. .stop, .inc)
catch {
writeln $"\.comment;\nERROR: \._err["msg"]:L200(...);\n"
} else {
writeln $"\.comment;\nresult: \.series;\n"
}
}
}