let 语句中的未初始化变量 ¶如果在 let 语句中不为变量绑定指定初始值,
它们会自动绑定到初始值 nil,如下例所示:
(let ((birch 3)
pine
fir
(oak 'some))
(message
"Here are %d variables with %s, %s, and %s value."
birch pine fir oak))
这里的变量列表是 ((birch 3) pine fir (oak 'some))。
按常规方式对该表达式求值后,回显区会显示:
"Here are 3 variables with nil, nil, and some value."
本例中,Emacs 将符号 birch 绑定到数字 3,
将符号 pine 和 fir 绑定到 nil,
将符号 oak 绑定到值 some。
注意在 let 的第一部分中,变量 pine 和 fir
以独立原子形式出现,没有被括号包裹;这是因为它们被绑定到空列表 nil。
而 oak 被绑定到 some,因此出现在列表 (oak 'some) 中。
同理,birch 被绑定到数字 3,因此与该数字同属一个列表。
(由于数字求值为自身,无需加引号。同时,在消息中数字使用 ‘%d’
而非 ‘%s’ 打印。)这四个变量被统一放入一个列表,
与 let 的函数体分隔开。