append-to-buffer
函数体append-to-buffer
函数的体部分以 let
开始。
正如我们之前所见 (see let
),let
表达式的目的是在 let
的体内创建并给予一个或多个变量初始值。这意味着这样的变量不会与 let
表达式外部同名的任何变量混淆。
通过以下提纲展示了 append-to-buffer
函数的模板,其中包含 let
表达式:
(defun append-to-buffer (buffer start end) "documentation…" (interactive …) (let ((variable value)) body…))
let
表达式包含三个元素:
let
;
(variable value)
;
let
表达式的体部分。
在 append-to-buffer
函数中,varlist 的样式如下:
(oldbuf (current-buffer))
在 let
表达式的这部分中,唯一的变量 oldbuf
被绑定到 (current-buffer)
表达式返回的值。这个变量 oldbuf
用于跟踪你正在操作的缓冲区,并从中复制。
varlist 的元素或元素组被一对括号括起,以便 Lisp 解释器能够区分 varlist 和 let
的体部分。因此,varlist 中的两元素列表被一对括号包围。这一行看起来像这样:
(let ((oldbuf (current-buffer))) … )
在 oldbuf
之前的两个括号可能会让你感到惊讶,如果你没有意识到 oldbuf
之前的第一个括号标记了 varlist 的边界,而第二个括号标记了两元素列表 (oldbuf (current-buffer))
的开始。