有没有图书馆可以做到这一点?玩转 Common Lisp 似乎这将是降低新手入门门槛的最有用的东西之一。ASDF 似乎主要是为部署而设计的,而不是为快速原型设计和开发而设计的。关注 comp.lang.lisp 上的线程,似乎人们同意 CL 的包系统功能强大,但缺乏 Python 死的简单模块系统之类的易用性。从某种意义上说,它是为功率而不是可用性而设计的,这是失败的。
很高兴知道我是否错了。如果我是对的,我很惊讶没有人尝试在 ASDF 之上构建类似 Python 模块的系统。
有没有图书馆可以做到这一点?玩转 Common Lisp 似乎这将是降低新手入门门槛的最有用的东西之一。ASDF 似乎主要是为部署而设计的,而不是为快速原型设计和开发而设计的。关注 comp.lang.lisp 上的线程,似乎人们同意 CL 的包系统功能强大,但缺乏 Python 死的简单模块系统之类的易用性。从某种意义上说,它是为功率而不是可用性而设计的,这是失败的。
很高兴知道我是否错了。如果我是对的,我很惊讶没有人尝试在 ASDF 之上构建类似 Python 模块的系统。
Zach Beane 写了他现在如何使用 Quicklisp 和 Quickproject 开始新的 Common Lisp 项目。这可能是你想要的。
不确定它是否已经准备好迎接黄金时段,或者它是否完全符合您的要求,但这里有一个XCVB的链接。
我不知道。我主要使用 ASDF 来满足我的开发中编译需求。一旦您注意到您会从多个源文件中受益,请打开 <projectname>.asd,添加一个基本的 ASDF 系统定义模板并开始添加文件名。当您注意到跨文件依赖项时,请更新依赖项列表。
但是,然后,我使用完全相同的方法来处理 Makefile(是的,我知道有自动依赖检查器可以为你做这件事,但是由于我主要是自己编写代码,所以将 Makefile/ASDF 定义修改为更容易我去)。
在 SBCL 中,REQUIRE 上有一个检查 ASDF 系统的钩子,因此您最终会得到与 Python 的导入一样方便的东西,但不知何故,我怀疑这不是您的意思。
这可能不是您想要的答案,但显然您对模块系统中的需求有所了解。您是否考虑过自己创建一个?也就是说,利用您有限的领域、有限的要求、您的环境,并简单地敲出任何可以迅速让您的生活更轻松的抽象?
这是 Lisp 的主要优点之一,我相信你知道,这些简单的抽象和小工具通常很容易在 Lisp 中制作。
我并不是建议解决所有对包系统或 ASDF 有问题的人,我只是建议按照您的理解解决您自己的问题,这可能比一些更强大的更大范围更简单、更小。
现在也有泥球。
如果您正在寻找一款软件来添加此功能,那么这是一个不错的选择。
如果您想要一个只使用 bash 生成新的通用 lisp 项目目录和文件布局的命令行工具,您可能会发现我为自己创建的一个很有用:lispproject。如果它不符合您的需求,请继续分叉它或从它获取模板的 repo 以满足您的需求:lisp-project-template。查看 lispproject repo 中的 sh 文件,了解模板的使用方式。另外,请注意,当我在 macOS 上使用它时,您可能需要调整对 sed 的调用以适应您的平台。替代 sed 调用在主脚本中,但如果您需要它们,只需将它们注释掉。
它是为电源而不是可用性而设计的
这就是大多数 Lisp 大师喜欢它的方式。