豫言 / 技术规范

本篇描述 4cdeca1 的实现。版本与适用边界见基线说明。

列表类型索引

这是类型构造器的列表索引行为规范。本文与文言稿同步。

列表元素定义域可以是整数、爻、字符串或递归列表。索引接受字面列、已核类型的变量,以及标准库罄、缀、附加的完整调用;直接用户函数调用按专用诊断拒绝,其他计算先用 虑 绑定。

声明按所有者“豫言”、包名“标准库”及“数据结构/多态列。豫”模块位置核对,内建罄、缀直接识别。合法性检查沿声明引用别名追踪标准库总集的重导出,不执行函数体。对象检查插入的隐式元素类型由调用脊剥去,罄不收显式实参,缀、附加各收两个。

规范形保存有序字面段与变量段,删除空列、合并相邻字面段,并按附加结合律规约;变量顺序与重复均保留。元素按自己的定义域递归规范化,预算从元素传到尾列、从附加左列传到右列,嵌套列表累计消耗同一预算。一百万步耗尽时报“类型规约超出步数”。

生产相等比较额外处理闭合列表,核对双方已检查的隐式元素定义域后递归比较实际规范值。缺少定义域、含变量或其他表达式交回原结构比较。整数元素使用数学整数多项式,不按机器整数回绕。

单层列表、嵌套列表与附加等价正例输出 7,顺序不同及直接用户函数反例按预期拒绝。完整自举、定点整体类型检查和豫构测试通过;正式广义类型回归 34 项全部通过。原生验收仍待完成。

长度、第N个及乘积的纯规范形规约与声明身份共 25 项专项断言通过。长度与乘积已接入整数规范化(标准库 数据结构/多态列。豫 提供「乘积」),含变量的整数索引按多项式比较,见依值类型。待办事项:第N个尚未接入整数规范化;含变量的列表索引仍只按结构比较。