我是一个新手,之前熟悉C和Python,现在使用Microsoft Windows下的Clozure Common Lisp学习Common Lisp。也许我的问题很愚蠢,请耐心帮助我。
1) 运行Common Lisp脚本的常规方法是什么?
现在,我在Windows下编写了一个批处理文件,调用ccl exe(wx86cl.exe),每次想要“运行”脚本时都会评估
2)
对于我的脚本,它们似乎是一样的,应该使用哪个?
3) 忽略它,不是一个清楚的问题
4) 当我想加载某些库(例如
我的脚本是
输出如下:
5) 我必须说我几乎忘记了将图像转储以加速加载Lisp库的方式。那么,我们开发(可能非常简单的)Lisp脚本的正常过程是什么?
基于我现在得到的答案,我猜想可能是:
a) 编辑你的脚本
b) 通过REPL环境进行测试,SLIME是一个非常好的选择,并且应该有许多循环在a<==>b之间
c) 转储图像以分发它?(我不确定)
6) 此外,我们发布/分发最终程序的常见方式/形式是什么?
1) 运行Common Lisp脚本的常规方法是什么?
现在,我在Windows下编写了一个批处理文件,调用ccl exe(wx86cl.exe),每次想要“运行”脚本时都会评估
(progn (load "my_script_full_path") (ccl:quit))
。这是运行Common Lisp脚本的标准方式吗?还有其他建议吗?2)
(require 'cxml)
和(asdf:operate 'asdf:load-op :cxml)
有什么区别?对于我的脚本,它们似乎是一样的,应该使用哪个?
3) 忽略它,不是一个清楚的问题
4) 当我想加载某些库(例如
require 'cxml
)时,每次“运行”脚本时总是需要花费时间(3秒甚至5秒)来加载cxml,还有很多日志输出到标准输出中,看起来像是检查某些内部内容。这是否意味着每次想要运行简单的测试时都必须花费3-5秒来加载cxml?这似乎有点低效,输出也很嘈杂。有什么建议吗?我的脚本是
(require 'cxml) (some-code-using-cxml)
。输出如下:
; Loading system definition from D:/_play_/lispbox-0.7/quicklisp/dists/quicklisp/software/cxml-20101107-git/cxml.asd into #<Package "ASDF0">
;;; Checking for wide character support... yes, using code points.
; Registering #<SYSTEM "cxml-xml">
......
一些我的脚本输出
---添加更多内容---5) 我必须说我几乎忘记了将图像转储以加速加载Lisp库的方式。那么,我们开发(可能非常简单的)Lisp脚本的正常过程是什么?
基于我现在得到的答案,我猜想可能是:
a) 编辑你的脚本
b) 通过REPL环境进行测试,SLIME是一个非常好的选择,并且应该有许多循环在a<==>b之间
c) 转储图像以分发它?(我不确定)
6) 此外,我们发布/分发最终程序的常见方式/形式是什么?
对于Lisp库,我们只需发布源代码,让其他人可以“加载/需要”它们。
对于Lisp程序,在确认所有功能都正常运行后,我们会转储图像以分发它。
我说的对吗?
在实际产品中我们使用什么形式?我们总是将所有东西都转储到一个图像中以加快加载速度吗?
(require 'asdf)
可以加载它。 - Rainer Joswig