gpt4 book ai didi

lisp - 与常见的 lisp 库作斗争

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:58 24 4
gpt4 key购买 nike

我学过scheme,很快就掌握了很多,然后用它做了一个项目就好了。从字面上看,我花了几天时间才完成。我现在正在尝试学习普通的 lisp 来感受它,现在我真的很难尝试学习 asdf。如何将它与图书馆一起使用似乎是常识,但我感到困惑。我猜这是因为大多数 lisp 程序都是在 repl 中制作和运行的,因为一切正常。当我尝试将它编译为可执行文件时,我失去了我的位置。

有没有人可以给我任何建议或指向它的教程?我真的希望能够制作一个可执行文件来提供给人们,而不必解释如何安装 sbcl 和(需要)它然后运行它。我只想学习用 lisp 做一些我无法用 scheme 做的实质性事情。

我想我可以使用 scheme 和 ffi 来让 c 库工作,但我没有使用 c 的经验。我只是出于个人原因学习 lisp 的网络开发人员。当然学习一些c和ffi可能不会花这么长时间哈哈。
谢谢

最佳答案

I really want to be able to make an executable to give to people without having to explain how to install sbcl and (require) it then run it.

您不需要 ASDF 来生成“独立”的可执行文件。大多数实现都提供了保存可执行镜像的方法,但标准中并未提及如何执行此操作(以及是否需要提供)。

通常,您会将代码加载到正在运行的图像中,然后“转储”该图像。

例如,在 SBCL 中,您将使用 sb-ext:save-lisp-and-die ; CCL 有 ccl:save-application .您必须查看实现的文档才能了解如何执行此操作。

目前我这里没有 SBCL,但这个最小的例子应该可以工作(未经测试):

(defun do-it () (format t "hello world~%"))
(sb-ext:save-lisp-and-die "hello" :toplevel #'do-it :executable t)

这是一个使用 CCL 的工作示例:

Welcome to Clozure Common Lisp Version 1.6-dev-r14287M-trunk  (LinuxX8632)!
? (defun do-it () (format t "hello world~%"))
DO-IT
? (ccl:save-application "hello" :toplevel-function #'do-it :prepend-kernel t)
[danlei@susi ~/build/ccl]% ./hello
hello world

这些可执行镜像可能相当大,除非您的实现提供类似 tree-shaker 的东西,但我认为现在这应该不是问题。

您可以在 another SO question about this topic 中找到 clisp 的详细示例.

ASDF Documentation

关于lisp - 与常见的 lisp 库作斗争,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3817063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com