| ...at least partially?  I find  (withs (do 1 re 2 mi 3) (+ do re mi))  ==> 6
 
whereas according to the definition  (mac withs (parms . body)
    (if (no parms)
        `(do ,@body)
        `(let ,(car parms) ,(cadr parms)
           (withs ,(cddr parms) ,@body))))
 
the above should be equivalent to  (let do 1
     (let re 2
       (let mi 3
         (do 
           (+ do re mi)))))
 
which should fail, shouldn't it?  At least defmacro would fail, wouldn't it?  What is going on? |