emacs.d/clones/colinallen.dnsalias.org/lp/node98.html

78 lines
2.4 KiB
HTML
Raw Normal View History

2022-08-02 12:34:59 +02:00
<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 2.0//EN">
<!Originally converted to HTML using LaTeX2HTML 95 (Thu Jan 19 1995) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds >
<HEAD>
<TITLE> let (SPECIAL FORM)</TITLE>
</HEAD>
<BODY>
<meta name="description" value=" let (SPECIAL FORM)">
<meta name="keywords" value="lp">
<meta name="resource-type" value="document">
<meta name="distribution" value="global">
<P>
<BR> <HR>
<A HREF="node99.html"><IMG ALIGN=BOTTOM ALT="next" SRC="next_motif.gif"></A>
<A HREF="node72.html"><IMG ALIGN=BOTTOM ALT="up" SRC="up_motif.gif"></A>
<A HREF="node97.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif"></A> <BR>
<A HREF="lp.html"><B>Contents</B></A>
<B> Next:</B>
<A HREF="node99.html"> list (FUNCTION)</A>
<B>Up:</B>
<A HREF="node72.html"> Appendix: Selected Lisp </A>
<B> Previous:</B>
<A HREF="node97.html"> length (FUNCTION)</A>
<BR> <HR> <P>
<H1> let (SPECIAL FORM)</H1>
<P>
<b> Format:</b>
<tt> (let ((&lt;var1&gt; &lt;init1&gt; )</tt>
<tt> (&lt;var2&gt; &lt;init2&gt; )</tt>
<tt> .</tt>
<tt> .</tt>
<tt> (&lt;varN&gt; &lt;initN&gt; ))</tt>
<tt> &lt;body&gt; )</tt>
<P>
<b> Required arguments:</b>
1
<P>
<tt> ((&lt;var&gt; &lt;init&gt; )...)</tt>: a list of zero or more lists having the
form <tt> (&lt;var&gt; )</tt> or <tt> (&lt;var&gt; &lt;init&gt; )</tt>. <tt> &lt;var&gt; </tt> must be a
symbol appropriate as the name of a variable. <tt> &lt;init&gt; </tt> may be
any Lisp expression.
<P>
<b> Optional arguments:</b>
arbitrary
<P>
<tt> &lt;body&gt; </tt>: any sequence of zero or more Lisp expressions.
<P>
The <tt> &lt;var&gt; </tt>'s are established as local variables for the
expressions in <tt> &lt;body&gt; </tt>. If a <tt> &lt;var&gt; </tt> is not accompanied by an
<tt>&lt;init&gt; </tt> expression, it is initially bound to NIL. Otherwise, <tt> &lt;init&gt; </tt>
is evaluated and assigned as the value of <tt> &lt;var&gt; </tt>. let evaluates
all the expressions in <tt> &lt;body&gt; </tt> and returns the value of the last, or
NIL if there are none.
<P>
<b> Examples:</b>
<P>
<BLOCKQUOTE>
<PRE>&gt; (let ((a)
(b))
(and (not a) (not b)))
T
&gt; (let ((a 3)
(b 4))
(setf a (+ a b))
(setf b (+ a b))
(+ a b))
18
</PRE>
</BLOCKQUOTE>
<P>
<BR> <HR>
<P>
<ADDRESS>
<I>&#169; Colin Allen &amp; Maneesh Dhagat <BR>
March 2007 </I>
</ADDRESS>
</BODY>