<div>PS is complaining because DOLIST compiles to a FOR loop in JS and FOR</div><div>loops can't be used as expressions, only statements. You might argue</div><div>that this case is a bug, since the DOLIST isn't in the tail position</div>

<div>of the LET form and so needn't be treated as an expression,</div><div>i.e. perhaps the compiler ought to transform your code into this:</div><div><br></div><div>  (let ((x 0))</div><div>    (dolist (i '(1 2 3))</div>

<div>      (incf x i))</div><div>    (setf v x))</div><div><br></div><div>But for now you have to write the above yourself, or else wrap your</div><div>DOLIST in a lambda (and call that lambda).</div><div><br></div><div>
Loops are one of the areas where JS tends to trump the Lispiness of PS.</div>
<div><br></div><div>Daniel</div><br><div class="gmail_quote">On Sun, Sep 4, 2011 at 8:57 PM, Canhua <span dir="ltr"><<a href="mailto:dreameration@gmail.com">dreameration@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

hi, I found that the following compiles to an error, I wonder if this<br>
is a bug or there is something I misunderstand.<br>
    (ps (setf v<br>
              (let ((x 0))<br>
                (dolist (i '(1 2 3))<br>
                  (incf x i))<br>
                x)))<br>
where the error is:<br>
<br>
  The Parenscript form (for<br>
                      (i (#1=_js_arrvar467 '(1 2 3))<br>
                       (#2=_js_idx466 0))<br>
                      ((not (>= #2# #))) ((setf #2# #))<br>
                      (setq i (aref #1# #2#)) (incf x i)) cannot be<br>
compiled into an expression.<br>
   [Condition of type compile-expression-error]<br>
<br>
Hope you help me, thank you.<br>
<br>
_______________________________________________<br>
parenscript-devel mailing list<br>
<a href="mailto:parenscript-devel@common-lisp.net">parenscript-devel@common-lisp.net</a><br>
<a href="http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel" target="_blank">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel</a><br>
</blockquote></div><br>