On 9/28/06, Barton Willis <willisb at unk.edu> wrote:
> The limitation of apply('matrix, ...) comes from the
> Lisp you are using. Maybe before your Maxima was compiled
> with a different Lisp. I believe that this limit on
> the number of function arguments is allowed --- it's not
> a Lisp bug.
Well, this behavior falls into the category of features which may
as well be bugs. By default GCL allows 64 function arguments max.
I'm pretty sure we need to rework matrix (and maybe other functions
which take an arbitrary number of arguments) so that the user
is much less likely to bump into this.
I believe something as simple as
:lisp (fmakunbound '$matrix)
:lisp (defmspec $matrix (L) `(($matrix) ,@(mapcar #'meval (cdr L))))
(plus the error-checking now present in $matrix) would solve this problem
(by avoiding a Lisp function call). Comments?
Other Lisp implementations also limit the number of arguments,
but the limits are greater. I don't remember what the numbers are.
best
Robert