<HTML><BODY>Where can I find style guide for these<br><br>for/lists:<br><br>I have to duplicate values names:<br><br><p>(define-values ([(desc-args lengths add-data)<br> (for/lists (desc-args lengths add-data) ([arg (in-list %args)])<br> ....)) </p>is it ok? Or better <br>(define-values ([(desc-args lengths add-data)<br> (for/lists (a b c) (...) ...))<br><br>?<br><br>for/fold has no "return" clause. So I have to do<br>(call-with-values<br> (for/fold (acc1 acc2 sum) (...) ...)<br> (lambda (acc1 acc2 sum) (reverse acc1) (reverse acc2) sum))<br><br>And for/list doesn't allow to add several items to resulting list in one round.<br>Even with for/fold it gives<br><br>(reverse <br> (for/fold (acc) ([item (in-list list)])<br> (values (cons (get-val1 item)<br> (cons (get-val2 item) acc)))))<br><br>Awful, especially for reading.<br><br>It is clumsy and unobvious.<br>In Common Lisp iterate I could do<br>(iter (...)<br> (collect (foo) into acc1)<br> (collect (bar) into acc2)<br> (summing ... into sum)<br> (finally (return acc1 acc2 sum)))<br><br>http://common-lisp.net/project/iterate/doc/index.html<br><br>Is there something similar?<br><br>-- <br>Roman Klochkov</BODY></HTML>