3

在 elisp 中,我有以下内容

(setq lexical-binding t)



 (fset 'boom (cl-flet*
               ((tickle ()
                        (message "hi"))
                (pickle ()
                        (tickle)))
             (lambda ()
               (pickle))))
(boom)

当我运行繁荣功能时,我得到了错误

Symbol's value as variable is void: --cl-pickle--

这里发生了什么?

我的意图是我想将私有/辅助函数和变量包装在一个闭包中,这样我就可以更好地组织我的代码,而不是一切都是全局的。

4

1 回答 1

5

不要(setq lexical-binding t)。您不想执行设置此变量的命令。相反,您想向 Emacs 描述您编写的代码使用词法绑定,为此您需要添加:

-*- lexical-binding:t -*-

文件第一行的某处。

于 2015-03-23T01:29:34.133 回答