On Apr 20, 2009, at 12:19 PM, Michael Hunger wrote:
>
> Is it possible to use :while to shortcut a for macro when a certain
> number of yiels have happened?
>
> e.g. (for [x (range 1000) :when (= (rem x) 1) :while (number of
> yields <= 10)]
>
> so i want only the first 10 results.
Is it po
I am a newbie, but seems that "for comprehension" are lazy lists:
user> (take 5 (for [x (range 20) :when (do (printf "*%d* " x) (= (rem x 2)
1))] x))
(*0* *1* *2* *3* 1 *4* *5* 3 *6* *7* 5 *8* *9* 7 9)
So, I think that you should use take :)
2009/4/21 Michael Hunger
>
> Is it possible to use
On 21.04.2009, at 00:19, Michael Hunger wrote:
>
> Is it possible to use :while to shortcut a for macro when a certain
> number of yiels have happened?
>
> e.g. (for [x (range 1000) :when (= (rem x) 1) :while (number of
> yields <= 10)]
>
> so i want only the first 10 results.
you could:
(d
As far as I know the number of yields is not available for testing, so
you have to use take
user=> (take 10 (for [x (range 1000) :when (= (rem x 2) 1)] x))
(1 3 5 7 9 11 13 15 17 19)
On Apr 21, 8:19 am, Michael Hunger wrote:
> Is it possible to use :while to shortcut a for macro when a certain n
Is it possible to use :while to shortcut a for macro when a certain number of
yiels have happened?
e.g. (for [x (range 1000) :when (= (rem x) 1) :while (number of yields <= 10)]
so i want only the first 10 results.
Or should I just use (take 10 ) on the for ?
Michael
--~--~-~--~~