Hat*_*sut 6 emacs elisp parentheses
我正在做关于emacs lisp 的教程,它正在谈论这个let
功能.
;; You can bind a value to a local variable with `let':
(let ((local-name "you"))
(switch-to-buffer-other-window "*test*")
(erase-buffer)
(hello local-name)
(other-window 1))
Run Code Online (Sandbox Code Playgroud)
我不明白let
第一行后双括号的作用.他们在做什么,一套不会做?没有它们运行该部分,我收到一个错误:Wrong type argument: listp, "you"
.
Sva*_*nte 10
你可以在那里引入多个变量.外部括号分隔绑定列表,内部是单个绑定表单.
(let ((foo "one")
(bar "two"))
(frobnicate foo bar))
Run Code Online (Sandbox Code Playgroud)
有没有“双括号”。
想必,你在想(let ((foo...)...))
,你的意思((
是后面的let
?如果是这样,请考虑:
(let (a b c) (setq a 42)...)
Run Code Online (Sandbox Code Playgroud)
IOW,let
声明局部变量。它可能还结合他们。在前面的 sexp 中,它声明了a
,b
和c
,但它没有绑定它们中的任何一个,而是将它留给let
主体来为它们赋值。
声明两个变量但仅绑定其中一个变量 ( a
)的示例:
(let ((a 42) b) ... (setq b ...) ...)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1665 次 |
最近记录: |