安装 SBCL(Steel Bank Common Lisp)
SBCL是Lisp的解释器,用于解释执行 Lisp 程序。
SBCL的官方网站:http://www.sbcl.org/
SBCL 支持几乎所有常见的系统,根据自己的系统版本下载对应的系统版本即可。
在该网页可以找到对应版本的下载地址:http://www.sbcl.org/platform-table.html
对于 AMD64 架构 Linux,下载成功后会得到以下文件:sbcl-2.2.5-x86-64-linux-binary.tar.bz2
使用以下命令解压:
tar -jxvf sbcl-2.2.5-x86-64-linux-binary.tar.bz2
使用以下命令安装(需要根权限)
cd sbcl-2.2.5-x86-64-linux
sudo sh install.sh
运行 hello world
解释器执行
下面是在解释器中执行 lisp 代码。
$ sbcl
* (format t "hello world")
hello world
NIL
* (exit)
执行 lisp 文件
在解释器中执行代码往往不是很方便,我们可以将其保存到一个 lisp 文件中。例如将以下代码写入 hello.lisp,然后交由 sbcl 执行。
(format t "Hello world")
首先打开 sbcl ,使用 load 运行 hello.lisp,相当于根据文件中出现的顺序,从前往后依次输入每一个表达式。
$ sbcl
* (load "hello.lisp")
Hello world
T
* (exit)
编译执行
sbcl 也支持先编译再执行,一个 lisp 文件,编译后变成一个 fast 文件,也叫做快速加载文件(fast-load file)。
使用以下命令生成 fast 文件,同时它也会执行文件内容。
* (load (compile-file "hello.lisp"))
; compiling file "/home/kali/lispwork/hello.lisp" (written 13 JUN 2022 09:19:03 PM):
; wrote /home/kali/lispwork/hello.fasl
; compilation finished in 0:00:00.000
Hello world
T
使用以下命令运行编译后的 fast 文件。
* (load "hello.fasl")
Hello world
T
安装 emacs
emacs不仅是一款强大的文本编辑器, 还是一款 lisp 开发神器。
在 debian 系统下,使用以下命令安装 emacs。
sudo apt-get update
sudo apt-get install emacs
Quicklisp
安装
Quicklisp是 Common Lisp 的库管理器。只需几个简单的命令即可下载、安装和加载超过 1,500 个库中的任何一个。
下载 quick lisp.lisp,下载地址:https://beta.quicklisp.org/quicklisp.lisp
在 sbcl 中加载执行该文件。
$ sbcl
* (load "quicklisp.lisp")
加载完成后,使用以下命令安装。
* (quicklisp-quickstart:install)
以上命令默认将 quicklisp 安装到家目录,若要安装在其它目录,可以传递:path "/target/path/"
给 install 函数来改变它,如下所示。
* (quicklisp-quickstart:install :path "/target/path/")
最后,运行以下命令,这会将 Quicklisp 添加到您的 init 文件中,以便您在任何时候运行 SBCL Quicklisp 都会被加载并准备就绪。
(ql:add-to-init-file)
基本命令
加载库
使用以下命令加载库:
(ql:quickload system-name)
示例,如果本地不存在 vecto 库,它将会自动下载到本地 sbcl 环境中,默认情况下它会隐藏警告,使用以下参数:verbose t
来显示完整的编译信息。
(ql:quickload "vecto")
删除库
使用以下删除库:
(ql:uninstall system-name)
示例,删除 vecto 库:
(ql:uninstall "vecto")
搜索库
使用以下命令来搜索库:
(ql:system-apropos substring)
示例,它将会列出所有与 xml 相关的库。
(ql:system-apropos "xml")
更新库
(ql:update-dist "quicklisp")
更新 quicklisp 客户端
(ql:update-client)
查看库依赖
(ql:who-depends-on system-name)
安装 slime
slime 是专门用于开发 lisp 程序的 emacs 模式。
使用以下命令安装和配置 slime。
(ql:quickload "quicklisp-slime-helper")
将以下内容加载到 ~/.emacs 中,这样当 emacs 启动的时候就会自动加载 slime。
(load (expand-file-name "~/quicklisp/slime-helper.el"))
;; Replace "sbcl" with the path to your implementation
(setq inferior-lisp-program "sbcl")
打开 emacs ,开启 slime
$ emacs
输入快捷键 Alt-x,然后输入 slime。就可以使用 slime 来开发 lisp 代码了。
; SLIME 2.27
CL-USER> (format t "Hello World")
Hello World
NIL
CL-USER>
参考
http://www.jonathanfischer.net/modern-common-lisp-on-linux/