gpt4 book ai didi

common-lisp - 如何执行一个普通的 lisp 文本文件(clozure cl)?

转载 作者:行者123 更新时间:2023-12-04 02:59:57 34 4
gpt4 key购买 nike

我是 Lisp 的初学者,只使用 DrRacket 来涉足 Racket/Scheme。我在弄清楚如何使用 Clozure CL for Windows 运行 .lisp 文件时遇到了很多麻烦。我尝试在 Ubuntu 上的 SBCL 中运行 .lisp 文件(在 virtualbox 上运行),但也没有成功。

我应该提一下,我已经研究了有关运行文件的相关问题,但我没有看到任何直接的解决方案。一些正在使用 .bat 文件,一些正在使用 Clozure CL 的图像(或类似的东西)“创建应用程序”。

对于 Ubuntu 中的 SBCL,我尝试过:

sbcl lisptest.lisp       \ The python/forth way.

(load "lisptest.lisp")

(load lisptest.lisp)

(--load lisptest.lisp)

:cd C:\Temp
(:cd C:\Temp)

等等。我还尝试从 Notepad++ 运行它:

cmd /k C:\Temp\ccl-1.11-windows\ccl\wx86cl64.exe "$(FULL_CURRENT_PATH)"

我一般都是这样执行python文件的,但是这个方法一直没有成功。

**我肯定会开始学习使用 Emacs 和 Slime(Emacs 是 lisp 的明显选择)。但是为了知识的缘故,我会很感激一些关于替代的、基本的文本编辑器方法的提示,这些方法可以打印一些像“hello world”这样的琐碎的东西,而不需要我将它明确地输入到 REPL 中,而是解释(或编译)文本与指令一起归档。

感谢您的帮助。

最佳答案

通常程序都有帮助 - 你看过了吗?

SBCL,Ubuntu,来自 shell:

一个 Common Lisp 文件:

$ cat test.lisp
(format t "Hello World~%~%")

SBCL 显示帮助:

$ sbcl --help
Usage: sbcl [runtime-options] [toplevel-options] [user-options]
Common runtime options:
--help Print this message and exit.
--version Print version information and exit.
--core <filename> Use the specified core file instead of the default.
--dynamic-space-size <MiB> Size of reserved dynamic space in megabytes.
--control-stack-size <MiB> Size of reserved control stack in megabytes.

Common toplevel options:
--sysinit <filename> System-wide init-file to use instead of default.
--userinit <filename> Per-user init-file to use instead of default.
--no-sysinit Inhibit processing of any system-wide init-file.
--no-userinit Inhibit processing of any per-user init-file.
--disable-debugger Invoke sb-ext:disable-debugger.
--noprint Run a Read-Eval Loop without printing results.
--script [<filename>] Skip #! line, disable debugger, avoid verbosity.
--quit Exit with code 0 after option processing.
--non-interactive Sets both --quit and --disable-debugger.
Common toplevel options that are processed in order:
--eval <form> Form to eval when processing this option.
--load <filename> File to load when processing this option.

User options are not processed by SBCL. All runtime options must
appear before toplevel options, and all toplevel options must
appear before user options.

For more information please refer to the SBCL User Manual, which
should be installed along with SBCL, and is also available from the
website <http://www.sbcl.org/>.

使用上面的脚本选项:

$ sbcl --script test.lisp
Hello World

对于 Clozure CL 也是如此

$ ccl --help
usage: ccl <options>
where <options> are one or more of:
-h, --help : this text
-V, --version : print (LISP-IMPLEMENTATION-VERSION) and exit
-K, --terminal-encoding : specify character encoding to use for *TERMINAL-IO*
-n, --no-init : suppress loading of init file
-e, --eval : evaluate <form> (may need to quote <form> in shell)
-l, --load : load <file>
-T, --set-lisp-heap-gc-threshold : set lisp-heap-gc-threshold to <n>
-Q, --quiet : if --batch, also suppress printing of heralds, prompts
-R, --heap-reserve <n>: reserve <n> (default: 1610612736)
bytes for heap expansion
-S, --stack-size <n>: set size of initial thread's control stack to <n>
-Z, --thread-stack-size <n>: set default size of first (listener) thread's stacks based on <n>
-b, --batch: exit when EOF on *STANDARD-INPUT*
--no-sigtrap : obscure option for running under GDB
--debug : try to ensure that kernel debugger uses a TTY for I/O
-I, --image-name <image-name>
and <image-name> defaults to ccl.image

Any arguments following the pseudoargument "--" are
not processed and are available to the application as
the value of CCL:*UNPROCESSED-COMMAND-LINE-ARGUMENTS* .

使用上面的加载选项

$ ccl --load test.lisp --eval '(quit)'
Hello World

关于common-lisp - 如何执行一个普通的 lisp 文本文件(clozure cl)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863641/

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