主要观点:YSH 现在有对象,介绍了 YSH 对象的技术细节、七种使用场景(方法、标志解析、模块、多态、ENV、纯函数、纯配置)、仍在进行中的两个想法(纯函数/IO 能力、纯配置),探讨了 YSH 是否是大语言以及其作为终极粘合语言的作用,还提及了闭包和安全问题等。
关键信息:
- YSH 对象是类型为
Obj
的值,是字典的链表,函数在原型链上成为方法。 - 七种使用场景包括方法作为命名空间、标志解析的类型对象、模块作为对象、元对象协议、ENV 作为对象栈、纯函数/IO 能力、纯配置。
- 仍在进行的想法包括限制
io
和vm
对象以支持纯函数,以及借鉴 Tcl 实现纯配置。 - YSH 实现不大,约 64K 行代码,二进制 2.3MB,2024 年发展迅速,从原型到成为“现实”。
重要细节: argv
数组不是对象,可通过简单数据结构表示命令参数。- JSON 样数据通过管道和文件序列化,但无对象参与。
Obj.new()
创建对象,函数first(obj)
和rest(obj)
用于导航对象链。- 模块是对象,可导入和调用其属性。
- ENV 是对象链表作为栈,用于处理环境变量。
renderPrompt(io)
钩子实现纯函数配置提示符。- 闭包用于捕获变量,如
task
中的$page
。 - 安全方面,
ENV
对象区分外部输入和内部变量,Dict
和Obj
类型避免原型污染。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。