> > Another reason is that as a general rule, it is a bad idea to use
> > strong mechanisms when weaker ones will do.
>
> i disagree completely. knowing one strong approach
> which solves several problems is much better than
> trying to memorize several weaker approaches.
Buildq is not stronger in the sense of being more general than, say,
sublis. It is stronger in the sense that it adds a complications such
as the special quoting rule and Splice, which are designed
specifically for the context of macro-expansion.
> buildq has 2 things going for it: it substitutes in parallel,
> and it quotes its second argument....
> neither sublis nor subst have both of these features.
Many many years of experience, going back to the original Macsyma days
and continuing through the problem reports we get on this mailing
list, convince me that "convenience" quoting in both Lisp and Maxima
are almost always a bad idea. In the case of buildq in particular, it
means that you cannot nest invocations of buildq sensibly, e.g.
buildq([a=a1], buildq([b=b1], ... ) )
Sublis, which *does* substitute in parallel, does not have this bad
quoting property, and is widely useful in algebraic manipulation,
unlike buildq.
Naturally, I am happy we have a "satisfied customer", but that is no
reason not to discuss the advantages and disadvantages of various ways
of doing things.
-s