Guile/Scheme 编程教程
Guile/Scheme 编程教程
Guile(GNU Ubiquitous Intelligent Language for Extensions)是 GNU 项目官方的扩展语言平台,基于 Scheme 语言标准(R5RS/R6RS/R7RS)。它既可作为独立编程语言使用,也可嵌入 C/C++ 程序中提供脚本扩展能力。
适用读者
| 读者类型 | 预期收获 |
|---|---|
| 函数式编程初学者 | 掌握 Lisp/Scheme 家族语言的核心思想 |
| GNU/Linux 开发者 | 学会使用 Guile 扩展和定制 GNU 工具 |
| Emacs 用户 | 深入理解 Emacs Lisp 与 Guile Scheme 的异同 |
| 嵌入式脚本开发者 | 将 Guile 嵌入自己的 C/C++ 应用 |
| Guix 用户 | 编写 Guix 系统配置和包定义 |
前置知识
- 基本的命令行操作能力
- 对编程概念(变量、函数、循环)有初步了解
- 无需 Lisp/Scheme 背景,教程从零开始
教程结构
本教程共 12 章,由浅入深覆盖 Guile/Scheme 编程的完整知识体系:
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 第 1 章 | Guile 概述 | Scheme 标准、GNU 扩展、与 Common Lisp 对比、适用场景 |
| 第 2 章 | 安装与环境搭建 | 各平台安装、Guix 系统、Emacs 集成、REPL 使用 |
| 第 3 章 | 基本语法 | S-表达式、求值规则、注释、数据类型、数字与字符串 |
| 第 4 章 | 列表与序对 | cons/car/cdr、列表操作、递归、点对结构 |
| 第 5 章 | 函数与闭包 | lambda、闭包、高阶函数、apply/map、命名 let |
| 第 6 章 | 控制流 | 条件表达式、let 绑定、do 循环、尾调用优化 |
| 第 7 章 | 宏系统 | syntax-rules、define-syntax、卫生宏、自定义宏 |
| 第 8 章 | 数据结构 | 记录类型、向量、哈希表、集合、队列 |
| 第 9 章 | 模块系统 | define-module、use-modules、导出导入、公共接口 |
| 第 10 章 | 输入输出 | 文件操作、端口、格式化输出、字符串端口、序列化 |
| 第 11 章 | C 扩展与 FFI | 外部函数接口、动态加载、嵌入 Guile、性能优化 |
| 第 12 章 | 最佳实践 | 编程风格、性能优化、调试技巧、Guix 系统配置 |
学习路径建议
入门路径: 第1章 → 第2章 → 第3章 → 第4章 → 第5章 → 第6章
进阶路径: 第7章 → 第8章 → 第9章 → 第10章
实战路径: 第11章 → 第12章
代码约定
本教程中所有代码示例均可在 Guile 3.0+ REPL 中直接运行。代码块使用以下格式:
;; 这是可直接运行的 Guile 代码
(display "Hello, Guile!")
(newline)
注意:类似这样的提示框用于标注易错点、版本差异或重要概念。
扩展阅读:类似这样的提示框推荐进一步学习的资源。