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!
____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to