39 lines
1.4 KiB
Text
39 lines
1.4 KiB
Text
procedure main()
|
|
testdata := [
|
|
# args Comment
|
|
# start stop incr
|
|
[[-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"]
|
|
]
|
|
|
|
range := proc("...",3) ; # range(i,j,k) same as "i to j by k"
|
|
every argcom := !testdata do{
|
|
write("\n",argcom[2])
|
|
writes("range(",seqimage(argcom[1]),")")
|
|
&error := 1
|
|
every elements := [] & put(elements, range ! argcom[1])
|
|
if &errornumber then{
|
|
write(" --->")
|
|
write("\tRun-time error ", &errornumber)
|
|
write("\t",&errortext)
|
|
write("\toffending value: ", image(&errorvalue))
|
|
errorclear()
|
|
}else{
|
|
&error := 0
|
|
if *elements ~= 0 then write(" = ",seqimage(elements))
|
|
else write(" (no result)")
|
|
}
|
|
}
|
|
end
|
|
|
|
procedure seqimage(L)
|
|
every result := "" & result ||:= image(!L) || ", "
|
|
return result[1:-2]
|
|
end
|