塞进 Uxn 虚拟机的 16 位 Lisp:Heol
来源: wiki.xxiivv.com — 2026
概述
Heol 是为 Uxn 虚拟机写的 Lisp 系统,定位是「16 位、能舒适地装进 Uxn,并带 Varvara 绑定」,目前仍在开发中。它的求值方式是规约表达式:原子返回自身的值,列表按函数应用处理,第一个元素是函数名,其余是参数,参数先求值再传入。文档给出了完整的语言参考:cons、car、cdr 构造与拆解序对,eq? 与 if 处理逻辑,算术按前缀写法如 (* (+ 3 5) 19),lambda 形成闭包,define 做全局命名,let* 做局部绑定,dotimes 做循环。值得一提的取舍是没有 progn、begin 这类显式顺序求值,而是用 and 代替——它返回最后一个非空值,因此可以自然地「先打印一个值,再返回另一个」。
核心要点
- 目标是把 16 位 Lisp 装进 Uxn 虚拟机,并提供 Varvara 端口绑定。
- 求值模型是规约:原子返回自身,列表按「首元素为函数名」的应用规则求值,参数先求值。
- 没有 progn/begin,顺序执行用 and 表达:(and (print 'hello) 42) 会先打印再返回 42。
- 逻辑值用 #t 与 () 表示,eq? 只在两边是同类原子(同数或同符号)时成立。
- 提供 let* 做局部绑定、define 做全局命名、dotimes 做循环,print 与 deo 负责输出与写端口。
- 文档以 fac(阶乘)与 count-down 两个小程序收束,便于直接照抄上手。
金句
Heol 是一门 16 位 Lisp,目标是带 Varvara 绑定、舒适地住进 Uxn。
👍 0
👎 0
返回 Lobsters 首页