7 个版本
0.3.5 | 2022年6月3日 |
---|---|
0.3.4 | 2022年6月2日 |
0.3.1 | 2022年5月29日 |
0.0.1 | 2022年5月7日 |
#538 在 编程语言 中
每月26次下载
1.5MB
1.5K SLoC
包含 (WOFF 字体, 99KB) fontawesome-webfont.woff, (WOFF 字体, 78KB) fontawesome-webfont.woff2, (WOFF 字体, 45KB) open-sans-v17-all-charsets-300.woff2, (WOFF 字体, 41KB) open-sans-v17-all-charsets-300italic.woff2, (WOFF 字体, 45KB) open-sans-v17-all-charsets-600.woff2, (WOFF 字体, 43KB) open-sans-v17-all-charsets-600italic.woff2 等 7 项更多.
lisp-rs
lisp-rs 是一个简单的 Lisp 解释器/库。解释器/库最初是作为一个 教学工具 开发的,用于解释 Lisp 解释器是如何工作的,以及如何使用 Rust 编程语言来实现它们。然而,解释器似乎已经获得了生命,并已使用 WASM 转移到 网页。解释器作为 crate 提供,可用于在 Rust 项目中嵌入 Lisp 解释器。WASM 实现使用 lisp-rs 作为库来实现在线解释器。
方言
解释器基于修改后的 Scheme 子集。以下是解释器支持的特性
- 变量和常量
- 函数(lambda)
- 功能构造,如 map、filter 和 reduce
- 闭包
- 尾调用优化
有关方言的更多信息,请参阅
实现
解释器已分三个阶段实现
- 第一阶段:完整的解释器和 REPL 实现以及支持基本数据类型(整数和布尔值)、变量、lambda 和 lambda 调用(分支 0.0.1)
- 第二阶段:支持高级数据类型(字符串、浮点数和列表)和功能构造(分支 0.0.2)
- 第三阶段:支持尾调用优化(分支 0.0.3)和闭包(分支 0.0.4)
有关第一阶段实现的详细代码分析,请参阅 文档。有关所有阶段的代码分析,请获取 电子书。
REPL
cargo run --features="build-binary"
测试
cargo test
WASM
解释器还编译成了WASM,以便在浏览器中运行,并托管在此处:链接.