我在几个 Lisp 源文件中开发了一些 Common Lisp 函数,我希望这些函数可以很容易地用于我编写的其他函数,或者如果我认为它们对其他人有用,可以在 github 上使用它们。现在,我只是将它们放在一些预定义的文件夹中并使用(require "/path/to/my/modules/module.lisp")
.
我想了解定义 Lisp 模块库的正确(规范 Lisp)方法是什么。问题的第二部分是如何使用它们(我是否定义了它们,或者我是否从其他人那里获得了它们)。
我已经阅读了很多关于defpackage
anddefsystem
和的文章asdf
。但我读过的所有内容似乎都集中在这项任务的某个特定领域。我在查看自定义模块创建、部署和使用的大局时遇到了很多麻烦。因此,假设我面前有 Lisp 环境(CLISP 或 SBCL)和一个或多个.lisp
我想从中制作包或库的文件,是否有文档解释了执行此操作所需的步骤?这可能是我已经阅读过的内容,但由于不了解上下文而没有跟踪。我所读到的关于 ASDF 的内容在功能上似乎是我所追求的,但我不明白 ASDF 是否是我唯一的选择,或者它是否恰好是事实上的标准和大多数其他人使用的,或其他什么。我在 SBCL 中使用过它,但不确定我是否正确使用它,也没有看到有关如何在 CLISP 中设置它的信息。所以我想了解这个任务的中上层、普通方法是什么。
我知道这是一大堆草率的子问题。同样,如果有一些好的参考资料可供参考,我可以阅读。我只是无法全面了解它应该如何工作,以及是否有任何“最佳”方法,或者在 Lisp 中,它是否有点像“狂野西部”选择库-经理-你喜欢的方法。我做了谷歌的事情并阅读了任何看起来相关的东西,但我的大脑正在旋转。
谢谢。