声明:我今天开始尝试使用elisp进行编码。
我真的很想知道为什么会出现以下错误:
Symbol's value as variable is void: response
使用以下代码:
(let* ((response (cons 'dict nil)))
(nrepl-request:eval
code
(lambda (resp)
(print resp (get-buffer "*sub-process*"))
(nrepl--merge response resp))
(cider-current-connection)
(cider-current-session)))
我的理解是,当从 lambda 函数调用时,
response
在 let*
子句的作用域内...但显然不是这样。 这段代码也似乎在工作。所以我对为什么会出现这种错误感到有些困惑,不知道该怎么做。
response
的值在定义 lambda 时被绑定,但显然该函数不会在同一作用域内被调用,因此response
在那个时候没有值(除非它在其他地方被绑定)。 - phils