【问题标题】:Creating a closure around a private function in elisp在 elisp 中围绕私有函数创建闭包
【发布时间】:2015-05-25 21:50:15
【问题描述】:

在 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--

这是怎么回事?

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

【问题讨论】:

    标签: emacs lisp elisp lexical-closures


    【解决方案1】:

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

    -*- lexical-binding:t -*-
    

    文件第一行的某处。

    【讨论】:

    • 我该死。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-04-12
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2019-11-09
    相关资源
    最近更新 更多