maps_over_lists or distribute_over



Is there a simple way for user to declare a user-function to have this property, or
does it only work with 'simplifier functions' ?

For instance, if I write a maxima function inner_myfunc and then use:

  (setf (get '$myfunc 'distribute_over) '(mlist $matrix mequal))

and then

    matchdeclare (aa,all);
    tellsimp (myfunc(aa),inner_myfunc(aa));

Then myfunc is first thread over lists and the result simplifies to inner_myfunc
which then makes a function call.

I wonder if there is a more direct way to do this. Even if the above construction
is necessary, you have added a very useful feature.

I guess the other route is to follow exampls of how double_factorial, etc are written.
In this case the function is

  (defun $double_factorial (z)
    (simplify (list '(%double_factorial) z)))

and %double_factorial is implemented handled with defprop.

Thanks,
John