#lisp #def #symbols #fun #numbers #compile #lambda

oolisp

基于 Daniel Holden 的书籍编写的 LISP,编译为 WebAssembly

1 个不稳定版本

0.1.9 2022 年 6 月 3 日

#601WebAssembly

MIT 许可证

59KB
1.5K SLoC

Oolisp

基于 Web 的 LISP 解释器

关于

语法 & 类型
数字
  • 与我们都熟悉的数字类似。(例如 11.11.1e+131.1e-13
符号
  • 符号是可以分配给任何值的名称。(例如 adddeffunsome-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