1 个不稳定版本
0.1.9 | 2022 年 6 月 3 日 |
---|
#601 在 WebAssembly
59KB
1.5K SLoC
Oolisp
基于 Web 的 LISP 解释器
关于
语法 & 类型
数字
- 与我们都熟悉的数字类似。(例如
1
,1.1
,1.1e+13
,1.1e-13
)
符号
- 符号是可以分配给任何值的名称。(例如
add
,def
,fun
,some-var
) - 用法:
def {symbol-name} value
字符串
- 字符串是由双引号分隔的字符。(例如
"c'ect ci nest pa un pipe?"
,"hg king"
)
S 表达式
- S 表达式用于调用和评估函数。(例如
(+ 1 2 3)
,(- (+ 9 1) (* 5 2))
,(list 1 2 3 4)
,(== {} {})
) - 用法:
(函数 arg0 arg1 arg2)
q表达式
- Q-表达式是值列表,保持未评估状态。(例如:
{1 1 1 1}
,{+ 9 (== {} {})}
)用法:{elem0 elem1 elem2}
lambda
- Lambda函数是构建函数的方法,可以是部分应用。(例如:
(\ {a b} {+ a b})
)用法:(\ {arg-list} {body})
深受以下影响
依赖关系
~1.5–2.4MB
~46K SLoC