[racket] feature request: support multi-steps for `range`
EDIT: somehow my first mail did not appear on the mailing list, so here
I send it again.
This came to my mind when I implementing Sieve of Eratosthenes with
wheel factorization.
The major concern is `in-range` instead of `range`.
Description
-----------
Now we have syntax
(range start end [step])
or similar for `in-range`
(in-range start end [step])
It only support a single value of `step`, for example:
(range 1 10 2)
=> '(1 3 5 7 9)
What I like to have is to support a list of step values, like:
(range start end [(step ...)])
(range 1 10 '(1 2))
=> '(1 2 4 5 7 8)
(range 1 10 '(1 2 -1))
=> '(1 2 4 3 4 6 5 6 8 7 8)
However, I don't know the "process" of requesting a feature, please help.
Discussion
----------
There are two major reason that I think this should be built-in.
1. The first is for clarity of code. I think it would be a waste time
using `make-do-sequence` or something like that only to extend a basic
utility.
2. The sencond is performance concern. The performance varies even when
we use `in-range` inside and outside `for` clause. Self-implemented
sequence runs much slower (Or is there a way I can extend for syntax?).
Please kindly comment.
Thanks!