在 Linux (Ubuntu WSL) 上通过 CLISP 运行 LISP 代码

R3t*_*ice 0 lisp linux clisp common-lisp windows-subsystem-for-linux

我是 LISP 的新手,想知道如何在 Ubuntu Linux 上正确运行一个简单的 lisp 程序。目前,我有一个名为“intmax.lisp”的 LISP 文件,其中包含以下代码:

(defun intmax (x y) (if (> x y) x y))

但是,当我转到命令行并运行时:

clisp intmax 2 4

为了比较 2 和 4,我没有得到任何输出。关于我做错了什么的任何建议?

Sva*_*nte 5

首先,使用 REPL。那不是 shell 命令行,而是类似于 Lisp 内部的命令行。

启动 Lisp 系统:

clisp
Run Code Online (Sandbox Code Playgroud)

您会收到如下提示:

[1]>
Run Code Online (Sandbox Code Playgroud)

加载您的文件:

[1]> (load "intmax.lisp")
Run Code Online (Sandbox Code Playgroud)

现在你可以调用你的函数:

[2]> (intmax 2 4)
Run Code Online (Sandbox Code Playgroud)

它会打印:

4
Run Code Online (Sandbox Code Playgroud)

并再次提示:

[3]>
Run Code Online (Sandbox Code Playgroud)

您可能希望稍后了解包和系统以便组织您的代码。

如果你想从命令行调用东西,你需要告诉 clisp 加载需要的东西,然后执行 lisp 命令。请查看手册页。例子:

clisp -q -i intmax.lisp -x '(intmax 2 4)'
Run Code Online (Sandbox Code Playgroud)