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