Hi

On Sat, Dec 27, 2008 at 11:40 PM, wubbie <sunj...@gmail.com> wrote:
>
> I didn't get the syntax error at all:

Yes, but I think maybe there is a bug in Clojure that causes the first
case to "work" when it should give a syntax error.  If it is not a bug
I do not understand why it ignores the expression.

> The first yields: ([0 0] [0 1] ... [0 99])
> The second  y ields ([0 1] [0 2] .. [0 100])
> I don't know why.
>
>
>
>
> On Dec 27, 4:29 pm, "Michael Wood" <esiot...@gmail.com> wrote:
>> On Sat, Dec 27, 2008 at 11:01 PM, wubbie <sunj...@gmail.com> wrote:
>>
>> > Hi,
>> > Why are they different?
>>
>> > (take 100 (for [x  (range 1000) y (range 1000) (< x y)][x y]))
>> >  (take 100 (for [x  (range 1000) y (range 1000) :when (< x y)][x y]))
>>
>> Based on the doc string I think the first one should be a syntax
>> error.  The (< x y) seems to be ignored:
>>
>> user=> (take 10 (for [x (range 1000) y (range 1000) this-is-ignored][x y]))
>> ([0 0] [0 1] [0 2] [0 3] [0 4] [0 5] [0 6] [0 7] [0 8] [0 9])
>> user=>
>>
>> The doc string implies that you should use :when expr, :while expr or
>> nothing at all for the filtering expression.

-- 
Michael Wood <esiot...@gmail.com>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to