Thank you for replying. It has only been a couple of weeks since I started
learning maxima and lisp, and as some of you probably know, it is a
rollercoaster ride, especially after years of getting by on matlab/octave
and C++.
The thing that threw me off balance was the asymmetry of how a subscripted
function argument is passed onwards to subfunctions. I was able to work
around the issue; for validation of a subscripted function foo, I do
namesake: arrayapply (foo, [idx])$
is (op (namesake) = lambda)
and for _constructing_ objects, as Stavros points out, I do
arraymake (foo, idx)
Learning maxima from the manual is not far off from learning a language
with just a dictionary, with awareness of the quoting behavior being akin
to getting the feel of verb transitivity. However, playing around with
maxima is particularly easy and attractive, so maybe at some later point I
will submit some tutorial-like notes for the maling list's consideration.
Cheers,
Manuel
On Wed, Oct 30, 2013 at 6:27 PM, Henry Baker <hbaker1 at pipeline.com> wrote:
> One of the shortcomings of the Common Lisp standardization committee was
> that many Common Lisp operations were defined as _macros_ or _special
> forms_ rather than functions.
>
> There was nothing wrong with defining macros and special forms, but these
> particular definitions should have been expanded into calls upon
> _standardized_ Common Lisp functions.
>
> There is no reason why Maxima has to make the same mistake.
>
> Any Maxima function which "for convenience" quotes its argument(s) should
> expand into a _documented Maxima function_ which _doesn't_ quote its
> argument(s).
>
> At 02:53 PM 10/30/2013, Stavros Macrakis wrote:
> >arrayinfo is one of those annoying functions which, "for the user's
> convenience", quotes its argument.
>
>
>