I'm getting an error when using thereis and collect in the same iterate:
(iter (for x :in '(3 1 4 1 5 9)) (thereis (evenp x)) (collect x)))
gives
Attempt to do COLLECT accumulation into a variable already being used for IF-EXISTS accumulation.
I don't really understand how these variables in collect, thereis, etc are chosen, maybe soemone could enlighten me.
I can rewrite it to bypass thereis:
(iter (for x :in '(3 1 4 1 5 9)) (let ((result (evenp x))) (when result (leave result))) (collect x)))
or use my own accumulation variable:
(iter (for x :in '(3 1 4 1 5 9)) (thereis x) (collect x :into y)))
but I prefer not to do either of those. Far too much typing!
Cheers, Chris Dean