Tsukuyomi是一个在Lua中实现的Lisp,其设计决策受到底层环境Lua的影响。目标是保持互操作性,简洁快速,适用于软实时环境(如游戏脚本)。目前,它的实现灵感来自Clojure,但逐渐呈现出与Clojure相似的特性。Lisp中的字符串使用Lua的字符串对象,数字使用Lua的数字(即IEEE 754双精度)。与其他Lisp不同,Tsukuyomi没有数字塔,因此无法增加大小。Lisp列表结构类似于Clojure的PersistentList,具体实现为一个4元组(first/car、rest/cdr、count、meta)。[]
和{}
分别命名为PersistentVector和PersistentHashMap,它们是基于hamt.lua的薄包装,来源于Matt Bernier的JavaScript HAMT实现。
TsukuyomiLua中的Lisp实现
文件列表
tsukuyomi-master.zip
(预估有个42文件)
tsukuyomi-master
.gitmodules
110B
core
lua_compiler.lua
16KB
compiler.lua
893B
bootstrap.tsu
2KB
reader.lua
9KB
tests.tsu
9KB
ir_compiler.lua
29KB
printer.lua
3KB
暂无评论