<div class="gmail_quote">On Mon, Aug 20, 2012 at 4:52 PM, Tara Lorenz <span dir="ltr"><<a href="mailto:tara@terralonza.de" target="_blank">tara@terralonza.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

while trying to get cl-num-utils running on ECL i encountered a problem<br>
with let-plus in combination with define-modify-macro.<br>
<br>
Informal description: When define-modify-macro defines a three-argument<br>
"modifier", ECL complains about  "wrong number of arguments" when used in<br>
combination with let-plus and structure slots.  I see no problems when<br>
used outside of let-plus.  I also see no problems when i use a two<br>
argument modifier.<br></blockquote></div><br>I believe the problem is in the SYMBOL-MACROLET used by LET+. LET+ encloses everything on a SYMBOL-MACROLET that defines expansions for the LET+ arguments. The problem is that some of the LET+ symbols that you used, MEAN and TALLY, are also used in the LAMBDA form from the define-modify-macro. In other words, your code is roughly equivalent to<div>

<br></div><div><div>(LET ((#:VALUE210 ACCUM))</div><div>  (DECLARE (IGNORABLE #:VALUE210))</div><div>  (SYMBOL-MACROLET ((MEAN (MEAN-ACCUMULATOR-MEAN #:VALUE210))</div><div>                    (TALLY (MEAN-ACCUMULATOR-TALLY #:VALUE210)))</div>

<div>    (INCF TALLY)</div><div>    (INCF-NOOP TALLY 1)</div><div>    (INCF-MEAN MEAN VALUE TALLY)))</div><div><br></div><div>When INCF-MEAN is expanded to</div><div><br></div><div><div>(LET* ((#:G205 VALUE) (#:G206 TALLY))</div>

<div>  (DECLARE (:READ-ONLY #:G205 #:G206))</div><div>  (SETQ MEAN</div><div>          ((LAMBDA (INCF-TEST::MEAN INCF-TEST::VALUE INCF-TEST::TALLY)</div><div>             (+ INCF-TEST::MEAN</div><div>                (/ (- INCF-TEST::VALUE INCF-TEST::MEAN) INCF-TEST::TALLY)))</div>

<div>           MEAN #:G205 #:G206)))</div></div><div><br></div><div>the uses of VALUE and MEAN in the lambda form are interfered by the SYMBOL-MACROLET.</div><div><br></div><div>Juanjo</div><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>

c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>
</div>