前端时间正好有空就学习了 rust 然后用它写了一个lisp 的解释器 这里有个 liunx_x86 版的可执行文件 可以下载下来把玩
有两种模式 一种是 cmd 命令行的形式,一种是直接加载文件运行的模式
在原有 scheme 方言的基础上增加了 tcp 的服务器功能
(
(define f (call-with-input-file "./demo.html" read-string))
(call-with-tcp-listener "127.0.0.1:8088" ( lambda (in) (
(display (byte-vector->string (read-byte-vector in 4096)))
(string-append "HTTP/1.1 200 OK\r\n\r\n" f)
))))
欢迎大家讨论,也看看后续是否继续迭代新特性
1
zagfai 2022-07-16 17:52:31 +08:00 1
手动点赞。
|
2
summerLast OP @zagfai 谢谢
|
3
summerLast OP 还可以中文编程
``` ( (define 定义 define) (定义 定义函数 defun) (定义 显示 display) (定义 换行 newline) (定义函数 打印 (打印的字) (显示 打印的字) (换行) ) (打印 '你好 中国') ) ``` |
4
kkkiio 2022-07-16 18:36:35 +08:00 1
你好像没实现 GC ,Arc<RwLock<T>> 有循环引用问题吧
|
5
yuelang85 2022-07-16 20:33:36 +08:00 1
酷
|
6
summerLast OP @kkkiio 是的 变量相关的信息现在全部放在 env 里面了 ,env 持有者结束之后 env 就结束了 env 是一个树形的结构
|
7
kkkiio 2022-07-18 18:55:18 +08:00 via iPhone
@summerLast set-car! 就能制造循环引用了
|
8
summerLast OP @kkkiio 是的,只有引用次数归 0 后才会被 gc
|
9
summerLast OP 捞一下
|