Function emacs lisp是否支持按词汇重新定义函数?
Emacs的最新版本支持elisp代码中变量的词法绑定。也可以用词汇重新定义函数吗?换句话说,Emacs Lisp是否有类似于Function emacs lisp是否支持按词汇重新定义函数?,function,emacs,elisp,lexical-scope,Function,Emacs,Elisp,Lexical Scope,Emacs的最新版本支持elisp代码中变量的词法绑定。也可以用词汇重新定义函数吗?换句话说,Emacs Lisp是否有类似于词法flet?的标签,但我不知道这是否是您要寻找的: (defun foo () 42) (defun bar () (foo)) (list (foo) (bar) (labels ((foo () 12)) (list (foo) (bar))) (foo) (bar)) 它返回EmacsT
词法flet
?的标签,但我不知道这是否是您要寻找的:
(defun foo ()
42)
(defun bar ()
(foo))
(list
(foo)
(bar)
(labels ((foo ()
12))
(list (foo)
(bar)))
(foo)
(bar))
它返回EmacsTo me 24.2.1中的
(42 42(12 42)42)
,返回“符号的函数定义无效:标签”(需要'cl)
。如果您有足够新的版本,请改用(cl标签…
。docstring表示“这类似于flet
,只是绑定是词汇性的”。这正是我想要的。谢谢我把这个作为公认的答案,因为它更完整,提供了完整的背景。