补充说明
代词
其 用于引用上一个命令的结果,并会覆盖之前的结果;而 之 的功能类似,但会将结果累积保存。这一点在多参数函数的 post 调用中尤为明显,例如:
夫一。夫之。夫之。
取三以加。 批曰「「正常」」
夫一。夫其。夫其。
取三以加。 批曰「「错误」」
若在同一语句中多次使用 其,可能导致无法预料的行为。
注释
注释可使用 注曰、疏曰 或 批曰「「xxx」」 等形式,编译器将直接忽略这些注释内容。
数据类型
數 数字
用于表示数值,支持整数、负数和小数。
一千零五 1005
一一四五一四 114514
負一又二分三毫 -1.203
可转换为布尔值及字符串: - 转换为字符串时,始终采用中文数字格式(如「一千零五」) - 转换为布尔值时:若值为0则为假(陰),非0则为真(陽)
注意:当数字需作为整数使用(如取模、循环次数等场景时),将通过向下取整转换为整数,而非四舍五入。
言 字符串
用于表示文本内容,由双引号包裹的字符序列组成。
「「xxx」」 "xxx"
可转换为布尔值(空字符串为假,非空为真)
支持加法运算(加),可实现字符串拼接。其他类型与字符串相加时将被自动转换为字符串。
爻 布尔值
表示逻辑真或假的值。
陰 false
陽 true
可转换为整数:false 转换为0,true 转换为1
列 数组
作为内置列表类型使用。多数情况下可修改,但部分内置函数返回的列表为不可变。
提供两个核心操作函数:
吾有一列。充其以二以九以四。名之曰「甲」。
吾有一列。充其以二。銜其以「甲」。名之曰「乙」。
此时「甲」为 [2, 9, 4],「乙」为 [2, 2, 9, 4]
访问或修改元素时,使用之指代列表中第n项(注:索引从1开始):
夫「甲」之一。書之。
昔之「乙」之三者。今「甲」之四是矣。
夫「甲」之長。書之。
另提供長属性用于获取数组长度。
数组遍历用法参见循环结构
物 对象
详见 格物 章节。
术 函数
详见 方術 章节。
关键字函数
以下关键字可以作为函数(不需要括号「」)使用:
算术运算符
加- 加法減- 减法乘- 乘法除- 除法
逻辑运算符
且- 逻辑与或- 逻辑或變- 逻辑非
数组运算符
充- 向数组添加元素銜- 合并数组
特殊函数
書- 输出待- 等待异步操作
结果堆栈
文言编程语言使用堆栈模型来管理计算结果:
- 每个表达式的计算结果会被压入答案堆栈
其从堆栈中弹出一个值并替换为当前结果之复制堆栈顶部的值但不弹出取 N 以从堆栈中弹出 N 个值作为参数
示例:
夫一。夫二。夫三。
取三以施「法」。
等价于:
施「法」於一於二於三。
作用域规则
变量作用域
- 使用
吾有或有声明的变量在当前作用域有效 - 使用
今有声明的变量在全局作用域有效 (need impl) - 函数内部可以访问外部变量(闭包)
- 函数内部声明的变量在函数返回时销毁
对象作用域
己指代当前对象实例父指代父类类型- 静态成员属于类本身,不依赖实例
语法糖
链式赋值
夫三。予之以「甲」。予之以「乙」。
等价于:
甲 = 3
乙 = 3
多变量命名
有數十三。夫十五。名之曰「甲」曰「乙」。
等价于:
var 甲 = 13, 乙 = 15