Linux 安装 sbcl emacs slime 搭建 Lisp 开发环境

安装 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/

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值