7 个稳定版本
| 1.0.6 | 2022年6月29日 |
|---|---|
| 1.0.5 | 2022年6月6日 |
| 1.0.4 | 2022年4月10日 |
| 1.0.1 | 2022年4月9日 |
| 1.0.0 | 2022年4月5日 |
#446 in 编程语言
50KB
1K SLoC
利西亚
用 Rust 实现的 Lisp
名称
名称来自氧化锂的另一种称呼
函数
quote返回其给定内容,用于您不想评估某物时exit退出 Lisp 解释器,可以提供退出码=、set设置变量def定义全局变量defunc定义全局函数eval评估给定的对象及其返回值print显示对象read读取一行到对象中include读取文件并评估它,返回最后一个对象while当第一个参数不是 nil 时,评估其余部分read提示输入并将其转换为对象func创建一个函数- 用法
(func (arg1 arg2) (body) (body) return_value)car、first获取点对中的第一个元素cdr、next获取点对中的第二个元素
数学函数
+、add-、sub*、mul/、div%、mod==、eq!=、ne
lib.rs:
这个软件包提供了一种在 Rust 程序中嵌入的 LISP 实现
支持在环境中提供 Rust 函数作为 LISP 函数
用法
此软件包位于 crates.io 上,您可以通过将 lithia 添加到您的项目 Cargo.toml 中的依赖项来使用它。
[dependencies]
lithia = "*"
示例:简单的REPL
let code = "(while t (print (eval (read))))".to_string()
let mut globals = HashMap::new();
let ret = Lisp::new(&mut globals)
.add_stdenv().unwrap()
.eval(&code);
依赖项
~2-3MB
~53K SLoC