[racket] Strange behaviour with in-range
The for form iterates by drawing an element from each sequence; if any
sequence is empty, then the iteration stops. So this:
(for ([i (in-range 2 4)]
[j (in-range 1 2)])
(printf "i = ~s j = ~s\n" i j))
produces
i = 2 j = 1
at which point, the j sequence is now empty, so the entire iteration stops.
--- nadeem
On Fri, Dec 30, 2011 at 5:49 PM, Charles Turner <chturne at gmail.com> wrote:
> I'm noticing some unexpected behaviour with in-range:
>
>> (for ([i (in-range 2 4)])
> (printf "i = ~s\n" i))
> i = 2
> i = 3
>
> that works as expected, but:
>
>> (for ([i (in-range 2 4)]
> [j (in-range 1 2)])
> (printf "i = ~s\n" i))
> i = 2
>
> why isn't '3' being picked up in the second example?
>
> Thanks,
> Charles.
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users