### The Maxima on-line user's manual

Algebra Calculator

#### Funmake

Function: funmake (<F>, [<arg_1>, ..., <arg_n>]) 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```

```(%o1)                                true
(%i2) ```

### Related Examples

##### funmake

f (x, y) := y^2 - x^2;

funmake (f, [a + 1, ...

''%;

Calculate

##### funmake

F (x, y) := y^2 - x^2;

funmake (F, [a + 1, ...

''%;

Calculate

? funmake;

Calculate

? funmake;

Calculate

##### funmake

f (x, y) := y^2 - x^2;

funmake (f, [a + 1, ...

''%;

Calculate

##### funmake

F (x, y) := y^2 - x^2;

funmake (F, [a + 1, ...

''%;

Calculate

? funmake;

Calculate

? funmake;

Calculate