我已经使用ELISP一段时间了,现在我决定使用 Emacs 的cl-lib.el
扩展来使用 Common Lisp。问题是,cl-lib.el
是否为Emacs提供了完整的CLISP扩展程序,还是它部分支持CLISP?另一个问题是,如果我将cl-lib.el
包含在一个软件包中(我有多个软件包),这是否意味着cl-lib.el
也会应用到所有其他软件包?例如,如果我有:
(load "~/elisp/file1.el") ; (require 'cl-lib.el)
(load "~/elisp/file2.el") ; does it automatically use cl-lib.el or not?
cl-lib.el
是cl.el
的一个子集。它的创建是因为有些人想要使用cl.el
中一些常用的部分,而不需要在运行时加载cl.el
的全部内容。 - Drewcl-lib.el
或cl.el
,只需(eval-when-compile (require 'cl))
或(eval-when-compile (require 'cl-lib))
即可。 - Drewcl-lib
并不是cl
的子集。它更像是cl
的后继者,主要区别在于命名(所有定义都以cl-
前缀开头)。当引入cl-lib
时,有几个部分从cl
转移到了核心中(主要是setf
),一些罕见的元素被完全删除,而其他罕见的元素也被添加,但总体上,它们的内容基本相同。” - Stefan