Apl语言各符号含义与中文语法设计尝试(二)
续 前文。
← + / × ∘.
←
Dyalog开发环境中,快捷键 `[。仅支持两个参数,将右侧赋值给左侧。如 R←⍳6 后,R为1到6。
+
单参数时,将所有复数项取共轭(conjugate),即虚部取相反。如 + 1.2 0j4 ¯5j¯6 返回 1.2 0J¯4 ¯5J6。
双参数时,将左右两边对应求和。如 Dyalog 下运行(带缩进的为用户输入,不带的为返回输出):
1 2 3 + 10
11 12 13
1 2 3 + 4 5 6
5 7 9
5 + 1 2 3
6 7 8
/
作函数时,支持双参数,根据左侧取右侧对应项并重复。比如
3 / 6
6 6 6
¯2 / 8
0 0
3 1 ¯2 2 / 6 7 8 9
6 6 6 7 0 0 9 9
1 0 1 0 1 / 'Heart'
Hat
作操作符(operator)时,与单个函数结合,将函数应用于参数之间,比如数列求和就是与 + 函数结合。
+/ 1 2 3 4 5
15
左侧可以指定“窗口”宽度,即每几项求和。
2 +/ 1 2 3 4 5
3 5 7 9
3 +/ 1 2 3 4 5
6 9 12
×
快捷键 `-。单参数时,为各项除以各项的绝对值(复数取模),比如:
×3 0 5
1 0 1
×3 0 ¯5
1 0 ¯1
× 3.1 ¯2 0 3j4
1 ¯1 0 0.6J0.8
双参数时,与 + 类似,只是求积。
∘.
∘(JOT)快捷键 `j。这两个符号与单个函数结合,将函数应用于左右两个参数的每对项之间,即张量积:
1∘.×1
1
1 2 ∘.× 1 2
1 2
2 4
1 2 ∘.+ 1 2
2 3
3 4
对应中文语法
与前文类似设计风格,以上符号各语义对比如下:
R←⍳6
R 置为 数列6
+ 1.2 0j4 ¯5j¯6
共轭 1.2 0j4 ¯5j¯6
1 2 3 + 10
1 2 3 相加 10
1 0 1 / '你好啊'
1 0 1 复刻 '你好啊'
+/ 1 2 3
相加 归约 1 2 3
2 +/ 1 2 3
2 相加 归约 1 2 3
×3 0 ¯5
朝向 3 0 ¯5
2 ¯3 4.5 × ¯3 ¯4 2
2 ¯3 4.5 相乘 ¯3 ¯4 2
R∘.×R
R 两两 相乘 R