From

http://www.math.utexas.edu/pipermail/maxima/2002/002

789.html

The docu says

- Function: DEFINE (f(x1, ...), body)

is equivalent to f(x1,...):="body but when used inside

functions

it happens at execution time rather than at the time

of definition

of the function which contains it.

Asside from the fact that " should (globally, at least also

in

"Introduction to Command Line") be replaced by '',

define(f(x),Block([],local(f),Map(lambda([x,y],f[x]:y),

[1,3,5],[2,5,1]),f[x]));

returns

f(x) := f[x]

and

f(x):=''Block([],local(f),Map(lambda([x,y],f[x]:y),[1,3,5],

[2,5,1]),f[x]);

returns

f(x):=BLOCK([],LOCAL(f),MAP(LAMBDA([x,y],f[x]:y),

[1,3,5],[2,5,1]),f[x])

so, it seems that this is not really an equivalence. In

fact, it seems to

me that '' doen't do anything in this context. Furthermore

g():= f(x):=''Block([],local(f),Map(lambda([x,y],f[x]:y),

[1,3,5],[2,5,1]),f[x]);

(as well as the same statement without '' ) makes g();

return

f(x):=BLOCK([],LOCAL(f),MAP(LAMBDA([x,y],f[x]:y),

[1,3,5],[2,5,1]),f[x])

(and now f is defined), while

g():=define(f(x),Block([],local(f),Map(lambda([x,y],f[x]:y),

[1,3,5],[2,5,1]),f[x]));

makes g(); return

f(x):=f[x]

(which is what I expected) So, I think the docu should

say something like

- Function: DEFINE (f(x1, ...), body)

is equivalent to f(x1,...):=evaluated_body, where

evaluated_body is

the evaluation of body.