LISP - 环境
Lisp - 现代开发环境设置
Section titled “Lisp - 现代开发环境设置”设置现代 Common Lisp 环境比以往任何时候都容易。Lisp 开发的关键在于其交互性,以 REPL(读取-求值-打印循环)为中心。本指南着重介绍构建强大且高效开发环境的当前最佳实践。
1. 选择 Lisp 实现
Section titled “1. 选择 Lisp 实现”Lisp 实现是指 Lisp 编译器和运行时。目前最流行的选择是:
- Steel Bank Common Lisp (SBCL):一个高性能、开源的编译器,是新项目的实际标准(de-facto standard)。它提供强大的类型检查并生成快速的原生代码。
- Clozure Common Lisp (CCL):另一个优秀、快速的实现,以其快速编译时间以及对 macOS、Linux 和 Windows 的良好支持而闻名。
- Embeddable Common Lisp (ECL):适用于将 Lisp 嵌入 C/C++ 应用程序或构建独立可执行文件。
我们建议从 SBCL 开始。
2. 安装 Lisp 和工具
Section titled “2. 安装 Lisp 和工具”安装和管理 Lisp 实现最简单的方法是使用版本管理器或系统包管理器。
推荐方法:Roswell
Section titled “推荐方法:Roswell”Roswell 是一个 Lisp 安装/管理工具,类似于 Node.js 的 nvm 或 Python 的 pyenv。它简化了实现安装、脚本管理和快速上手。请查看 Roswell 官方 GitHub 页面获取安装说明。
# 安装 Roswell 后,安装 SBCLros install sbcl-bin
# 设置为默认ros use sbcl-bin备选方案:系统包管理器
Section titled “备选方案:系统包管理器”# macOS (使用 Homebrew)brew install sbcl
# Debian/Ubuntusudo apt-get install sbcl
# Arch Linuxsudo pacman -S sbcl3. 配置编辑器以进行交互式开发
Section titled “3. 配置编辑器以进行交互式开发”虽然可以在纯文本编辑器中编写 Lisp 代码,但其真正的强大之处在于与正在运行的 Lisp 进程集成的编辑器。
- Emacs + SLIME 或 SLY:这是传统的黄金标准。SLIME (Superior Lisp Interaction Mode for Emacs) 及其继任者 SLY 提供深度集成,允许你在编辑器中连接到实时 Lisp REPL,并从中编译函数、检查对象和调试代码。
- Visual Studio Code + Alive:一个出色的现代替代方案。Alive 扩展在流行的 VS Code 编辑器中提供了丰富、类似 SLIME 的交互式体验,使 Lisp 对新手非常友好。
4. 你的第一次交互式会话
Section titled “4. 你的第一次交互式会话”让我们启动一个 REPL 并运行一些代码。打开你的终端并输入 sbcl。
$ sbclThis is SBCL ...* ; 星号是 REPL 提示符现在,你可以输入 Lisp 表达式,REPL 将对其进行求值并打印结果。
* (+ 2 2)4
* (format t "Hello, Lisp World!~%")Hello, Lisp World!NIL创建一个名为 hello.lisp 的文件:
;;; hello.lisp
(defun hello () (format t "Hello from a file!~%"))
(format t "File loaded.~%")现在,将此文件加载到你正在运行的 REPL 中:
* (load "hello.lisp")File loaded.T
* (hello)Hello from a file!NIL
* ; 要退出 REPL,请键入 (quit) 或按 Ctrl+D* (quit)5. 项目和库管理
Section titled “5. 项目和库管理”Quicklisp 是 Common Lisp 必不可少的库管理器。它允许你通过一条命令下载、安装和管理数千个开源库。请遵循 Quicklisp 官方网站上的安装说明。安装后,你可以像这样加载一个库:
* (ql:quickload :drakma) ; 加载 Drakma HTTP 客户端库