let

(let <bindings> <body>)


Description:

Syntax: <Bindings> should have the form


         ((<variable1> <init1>) ...)


where each <init> is an expression, and <body> should be a sequence of

one or more expressions.  It is an error for a <variable> to appear

more than once in the list of variables being bound.


Semantics: The <init>s are evaluated in the current environment (in some

unspecified order), the <variable>s are bound to fresh locations

holding the results, the <body> is evaluated in the extended

environment, and the value(s) of the last expression of <body> is(are)

returned.  Each binding of a <variable> has <body> as its region.


Arguments:


Returns: boolean


Examples:

(let ((x 2) (y 3))

   (* x y))                      =>  6


(let ((x 2) (y 3))

   (let ((x 7)

         (z (+ x y)))

     (* z x)))                   =>  35



Back to index