#lisp #list #error #called #macro #testing #lib

bin+lib nyavascript

Lisp 实现。因为我是怪物,所以叫 NyavaScript

1 个不稳定版本

0.1.0 2022 年 7 月 27 日

#1810Rust 模式

GPL-3.0-or-later

175KB
6K SLoC

待办事项

[ ] 考虑返回数据类型错误而不是评估错误为 nil [ ] 添加测试以确保 McCarthy 范围包含我们期望的内容 [ ] 将环境传递给宏 [ ] 在适用的情况下添加行和列到错误中 [ ] 将 lambda 传递给其他 lambda 稍微有点奇怪...搞清楚它 [ ] 需要实现 McCarthy 功能 [] Car [] Cons [] Cdr [] Equal [] quote [ ] 可能还有更多 [] McCarthy 上下文???作为 Rust 上下文类型? [ ] 确保所有 McCarthy 内容都已添加 [ ] Lib 用户定义的 Rust 上下文 [ ] 我觉得有用的 Lib Rust 上下文 [ ] 如 print [ ] 加减 [ ] 非纯 McCarthy 的内容 [ ] 搞清楚端到端测试和库单元测试之间的差异和标准做法 [ ] 语法解析一团糟,重构使其更容易阅读 [ ] 语义解析可能是冗余的,那里正在进行的工作可能更适合在语法解析中完成 [ ] 垃圾回收器 [ ] 应将 Evaluate List 重构为更多函数以便更容易阅读 [ ] 允许多个列表在根处,无需将根列表作为新函数附加。也许作为 refvals 的向量 [ ] 也许字符串应该是字符列表?或者也许永久引用符号?选择一个 [ ] 列表宏 [ ] 标签宏 [ ] let 宏 [ ]任意的 cdaddr 函数 [ ] 也许 McCarthy 函数应该是“特殊”的,与宏分开?决定。 [ ] 从 SX 为 SXRef [ ] 从内部为 SXRef [ ] 从内部为 SX [ ] 更好的 toString 对于 Function [ ] 更好的 toString 对于 Macro [ ] 找到一种在 RustFunction 上实现 PartialEq 的方法 [ ] 找到一种在 RustMacro 上实现 PartialEq 的方法 [*] 将 McCarthyScope 中的闭包移动到它们自己的函数中?

无运行时依赖