tsukuyomi:在 Lua 中实现的 Lisp

时间:2024-07-23 13:24:22
【文件属性】:

文件名称:tsukuyomi:在 Lua 中实现的 Lisp

文件大小:160KB

文件格式:ZIP

更新时间:2024-07-23 13:24:22

EmacsLisp

筑读 在 Lua 中实现的 Lisp 当前的设计决策 到目前为止,其中很多都是受到底层环境是 Lua 的推动,我希望保持互操作性并保持简单和快速。 最终目标是在软实时环境(游戏脚本)中使用它。 到目前为止,我从 Clojure 中汲取灵感,但它越来越像 Clojure 的克隆。 Lisp 字符串是 Lua 字符串对象。 Lisp 数字是 Lua 数字(IEE 754 双精度)。 与其他 Lisps 不同,没有数字塔可以增加大小。 Lisp 列表就像 Clojure 的 PersistentList,它是一个 4 元组(first/car、rest/cdr、count、meta)。 [] 和 {} 被命名为 PersistentVector 和 PersistentHashMap,它是 hamt.lua 的一个薄包装,它是来自 Matt Bernier 的 Javascript H


【文件预览】:
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)
--------eval.lua(1KB)
--------apply.lua(16KB)
----init.lua(1KB)
----thirdparty()
--------strict.lua(673B)
--------hamt.lua()
--------util.lua(4KB)
--------bcname.lua(534B)
----README.md(2KB)
----sandbox()
--------manual_package_test.lua(179B)
--------arity_dispatch.bat(97B)
--------arity_dispatch.lua(936B)
----tests()
--------run_with_lua.bat(226B)
--------window.el(311KB)
--------compiler.lua(3KB)
--------run_all_tests.lua(1KB)
--------reader.lua(2KB)
--------run.sh(133B)
--------tokenizer.txt(257KB)
--------tokenizer.lua(844B)
--------test1.lua(2KB)
--------run_with_luajit.bat(251B)
----lang()
--------Keyword.lua(1011B)
--------ConcatSeq.lua(3KB)
--------PersistentList.lua(3KB)
--------PersistentVector.lua(2KB)
--------PushbackReader.lua(631B)
--------Function.lua(8KB)
--------PersistentVectorSeq.lua(3KB)
--------Namespace.lua(1KB)
--------Symbol.lua(859B)
--------String.lua(257B)
--------Var.lua(2KB)
--------ArraySeq.lua(3KB)
--------PersistentHashMap.lua(2KB)
----.gitignore(42B)

网友评论