一个可读的 Lisp,少于 1k 行 C 代码
有一天,我想看看我能用 1k 行 C 语言做什么。 决定编写一个 Lisp 解释器。事实证明,这 这是一个有趣的周末项目,结果是一个迷你 Lisp 实现 支持
$ make
MiniLisp 已经在 Linux x86/x86-64 和 64 位 Mac OS 上进行了测试。代码不太依赖于架构,因此您应该能够在其他类似 Unix 的操作系统上编译和运行。
MiniLisp 支持整数字面量、(), t, 符号和列表字面量。
() 是唯一的假值。 它还表示空列表。 * t 是一个预定义的变量,其值为自身。 这是表示真值的首选方式,而任何非 () 值都被认为是真值。 * 符号是具有唯一名称的对象。 它们用于表示标识符。 由于 MiniLisp 没有字符串类型,有时也用作字符串的替代。 * 列表字面量是 cons 单元。 它是一个普通列表,其最后一个元素的 cdr 为 (),或者是以任何非 () 值结尾的斜线列表。 斜线列表写成为 (a . b)。cons 传入两个参数, 并返回一个新的 cons 单元, 使第一个参数成为 car, 第二个参数成为 cdr。
暂无开放 Issues,或尚未同步最近议题。