[racket] feature request: support multi-steps for `range`

From: Mark Wallace (lotabout at gmail.com)
Date: Mon May 5 03:25:03 EDT 2014

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!

Posted on the users mailing list.