fundef SciMax Toolbox funp

SciMax Toolbox >> funmake

funmake

Maxima Function

Calling Sequence

funmake (F, [arg_1, ..., arg_n])

Description

Returns an expression F(arg_1, ..., arg_n). The return value is simplified, but not evaluated, so the function F is not called, even if it exists.

funmake does not attempt to distinguish array functions from ordinary functions; when F is the name of an array function, funmake returns F(...) (that is, a function call with parentheses instead of square brackets). arraymake returns a function call with square brackets in this case.

funmake evaluates its arguments.

Examples:

funmake applied to an ordinary Maxima function.

(%i1) F (x, y) := y^2 - x^2;
                                   2    2
(%o1)                  F(x, y) := y  - x
(%i2) funmake (F, [a + 1, b + 1]);
(%o2)                    F(a + 1, b + 1)
(%i3) ''%;
                              2          2
(%o3)                  (b + 1)  - (a + 1)

funmake applied to a macro.

(%i1) G (x) ::= (x - 1)/2;
                                  x - 1
(%o1)                    G(x) ::= -----
                                    2
(%i2) funmake (G, [u]);
(%o2)                         G(u)
(%i3) ''%;
                              u - 1
(%o3)                         -----
                                2

funmake applied to a subscripted function.

(%i1) H [a] (x) := (x - 1)^a;
                                        a
(%o1)                   H (x) := (x - 1)
                         a
(%i2) funmake (H [n], [%e]);
                                       n
(%o2)               lambda([x], (x - 1) )(%e)
(%i3) ''%;
                                    n
(%o3)                       (%e - 1)
(%i4) funmake ('(H [n]), [%e]);
(%o4)                        H (%e)
                              n
(%i5) ''%;
                                    n
(%o5)                       (%e - 1)

funmake applied to a symbol which is not a defined function of any kind.

(%i1) funmake (A, [u]);
(%o1)                         A(u)
(%i2) ''%;
(%o2)                         A(u)

funmake evaluates its arguments, but not the return value.

(%i1) det(a,b,c) := b^2 -4*a*c;
                                    2
(%o1)              det(a, b, c) := b  - 4 a c
(%i2) (x : 8, y : 10, z : 12);
(%o2)                          12
(%i3) f : det;
(%o3)                          det
(%i4) funmake (f, [x, y, z]);
(%o4)                    det(8, 10, 12)
(%i5) ''%;
(%o5)                         - 284

Maxima simplifies funmake's return value.

(%i1) funmake (sin, [%pi / 2]);
(%o1)                           1
fundef SciMax Toolbox funp