<A NAME=DEFN>
<TITLE>DEFN</TITLE></A>
<b><a href=r37_idx.html>INDEX</a></b><p><p>
<B>DEFN</B> _ _ _ _ _ _ _ _ _ _ _ _ <B>switch</B><P>
<P>
<P>
<P>
When the switch <em>defn</em> is on, the Standard Lisp equivalent of the
input statement or procedure is printed, but not evaluated. Default is
<em>off</em>.
<P>
<P>
<P> <H3>
examples: </H3>
<P><PRE><TT>
on defn;
17/3;
(AEVAL (LIST 'QUOTIENT 17 3))
df(sin(x),x,2);
(AEVAL (LIST 'DF (LIST 'SIN 'X) 'X 2))
procedure coshval(a);
begin scalar g;
g := (exp(a) + exp(-a))/2;
return g
end;
(AEVAL
(PROGN
(FLAG '(COSHVAL) 'OPFN)
(DE COSHVAL (A)
(PROG (G)
(SETQ G
(AEVAL
(LIST
'QUOTIENT
(LIST
'PLUS
(LIST 'EXP A)
(LIST 'EXP (LIST 'MINUS A)))
2)))
(RETURN G)))) )
coshval(1);
(AEVAL (LIST 'COSHVAL 1))
off defn;
coshval(1);
Declare COSHVAL operator? (Y or N)
n
procedure coshval(a);
begin scalar g;
g := (exp(a) + exp(-a))/2;
return g
end;
COSHVAL
on rounded;
coshval(1);
1.54308063482
</TT></PRE><P>The above function <em>coshval</em> finds the hyperbolic cosine (c
osh) of its
argument. When <em>defn</em> is on, you can see the Standard Lisp equivalent
of the function, but it is not entered into the system as shown by the
message <em>Declare COSHVAL operator?</em>. It must be reentered with
<em>defn</em> off to be recognized. This procedure is used as an example; a
more efficient procedure would eliminate the unnecessary local variable
with
<P><PRE><TT>
procedure coshval(a);
(exp(a) + exp(-a))/2;
</TT></PRE><P><P>
<P>
<P>
<P>