3.6.1 let 表达式的组成部分

一个 let 表达式包含三个部分。第一部分是符号 let。第二部分是一个列表,称为varlist,其中每个元素要么是一个单独的符号,要么是一个两元素列表,其中第一个元素是一个符号。let 表达式的第三部分是 let 的主体。主体通常包含一个或多个列表。

let 表达式的模板如下:

(let varlist body…)

varlist 中的符号是由 let 特殊形式给予初始值的变量。单独的符号被赋予 nil 的初始值;而每个作为两元素列表的第一个元素的符号则被绑定到 Lisp 解释器评估第二个元素时返回的值。

因此,varlist 可以看起来像这样:(thread (needles 3))。在这种情况下,在 let 表达式中,Emacs 将符号 thread 绑定到初始值 nil,并将符号 needles 绑定到初始值 3。

当编写 let 表达式时,你要做的是将适当的表达式放入 let 表达式模板的各个部分。

如果 varlist 由两元素列表组成,这在许多情况下是常见的,那么 let 表达式的模板如下:

(let ((variable value)
      (variable value)
      …)
  body…)