🐛 fix(tsl-syntax-reference): close verified syntax gaps
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
|
||||
<!-- section-id: syntax-11-004 -->
|
||||
|
||||
<!-- tags: 建数组, 数组下标, 数组索引, array 下标, 字典, 键值对, 二维数组, 嵌套数组, 按名字取值 -->
|
||||
<!-- tags: 建数组, 字典, 键值对, 二维数组, 嵌套数组, 按名字取值 -->
|
||||
|
||||
顺序数组与字符串键表:
|
||||
|
||||
@@ -299,7 +299,7 @@ writeLn("子集 (1,0):", subset[1][0]);
|
||||
|
||||
<!-- section-id: syntax-11-011 -->
|
||||
|
||||
<!-- tags: 长度不一致, 缺位补零, 标量广播, 数组和数字运算 -->
|
||||
<!-- tags: 长度不一致, 缺位补零, 标量广播, 数组和数字运算, 按行广播, 二维矩阵乘一维数组 -->
|
||||
|
||||
基础算符作用于非完全矩阵(行长度不一致或字符串键不对齐的数组)时,对应位置不存在或为 `nil` 时**默认当 0 处理**:
|
||||
|
||||
@@ -356,6 +356,32 @@ writeLn("(1,1):", result[1][1]);
|
||||
- `matrix_value + 10` 每个元素都加 10
|
||||
- 这些是逐元素运算(element-wise),区别于矩阵乘法 `:*`,见 [21_matrix_deep_dive.md](21_matrix_deep_dive.md)
|
||||
|
||||
二维矩阵与一维数组做基础算术时,一维数组按“行”广播;它的长度必须等于矩阵行数:
|
||||
|
||||
代码块身份:可直接照写示例
|
||||
|
||||
```tsl
|
||||
matrix_value := array((1, 2, 3), (4, 5, 6));
|
||||
row_factors := array(10, 100);
|
||||
left_result := matrix_value * row_factors;
|
||||
right_result := row_factors * matrix_value;
|
||||
writeLn(left_result[0][0]);
|
||||
writeLn(left_result[1][2]);
|
||||
writeLn(right_result[0][1]);
|
||||
writeLn(right_result[1][0]);
|
||||
```
|
||||
|
||||
代码块身份:输出片段
|
||||
|
||||
```text
|
||||
10
|
||||
600
|
||||
20
|
||||
400
|
||||
```
|
||||
|
||||
说明:第一行使用 `10`,第二行使用 `100`;左右操作数交换后仍按行广播。不要把这条规则误写成按列广播。
|
||||
|
||||
## 本页不生成的范围
|
||||
|
||||
<!-- section-id: syntax-11-012 -->
|
||||
@@ -383,3 +409,4 @@ writeLn("(1,1):", result[1][1]);
|
||||
- 不要把普通 `array(...)` 自动升级成 `FMArray`;`FMArray` 专属事实见 [22_fmarray.md](22_fmarray.md)。
|
||||
- 不要把点前缀比较 `.>` 和矩阵链式比较 `::>` 混用;`.>` 返回逻辑数组,`::>` 是链式比较。
|
||||
- 不要以为非完全矩阵缺位会报错;默认当 `0` 处理。
|
||||
- 二维矩阵与一维数组运算时,不要把一维数组当成按列因子;它按行广播且长度要匹配行数。
|
||||
|
||||
Reference in New Issue
Block a user