more build problems, STEP-FUN in LOOP must be a function
Subject: more build problems, STEP-FUN in LOOP must be a function
From: Raymond Toy
Date: Fri, 04 May 2007 13:16:57 -0400
Andreas Eder wrote:
> Rainer wrote:
>
>> Maxima 5.12.0
>>
>>
>> I see code like this:
>>
>>
>> ratmac.lisp
>>
>> (defmacro pt-red (terms) `(cddr ,terms))
>>
>>
>>
>> rat3a.lisp
>>
>> (defun pctimes1 (c terms)
>> (loop for (exp coef) on terms by #'pt-red
>> unless (pzerop (setq coef (ptimes c coef)))
>> nconc (list exp coef)))
>>
>>
>>
>> ANSI Common Lisp defines the STEP-FUN in LOOP
>> to be a function. We cannot use a macro here.
>
> Corrected in cvs.
I disagree with your fix. Wouldn't the right solution be to make pt-red
a inline function? Then the issue is fixed everywhere. I don't know
what pt-red really means, but it seems clear that the original author(s)
were trying to abstract out the representation, and I don't think we
should remove that abstraction.
Ray