在匿名函数中,例如
(lambda () x)
如何将符号x
替换为当前范围内的值?
我唯一能想到的是
(eval `(lambda () ,x))
但我想知道是否还有另一种方式。
答案 0 :(得分:1)
删除eval
。只需`(lambda () ,x)
。
返回列表 (lambda () VAL-X)
,其中VAL-X
是变量x
的值。并且一个lambda列表被Emacs解释为函数。
答案 1 :(得分:1)
更好的解决方案是添加
;; -*- lexical-binding:t -*-
在文件的开头。完成后,编写(lambda () x)
即可,因为Emacs将负责使用该lambda范围内的值替换x
(即将创建一个合适的闭包) )。