前文

← + / × ∘.

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