Jul*_*ius 1 operators apl dyalog
在 APL 中,可以使用 构造广义内积f.g
。根据手册,结果是一个数组,其中每个项目都是根据左操作数和右操作数的向量构造的f/x g\xc2\xa8y
(x
并且y
是沿着所述操作数的特定轴获取的向量)。乍一看,外部产品似乎源自于此:它是\xe2\x88\x98.g
,我通过设置 获得它f \xe2\x86\x90 \xe2\x88\x98
。但是,如果我使用内积的定义来评估它,我似乎没有获得有效的 APL 代码(我得到了\xe2\x88\x98/x g\xc2\xa8y
,其中\xe2\x88\x98/
特别没有多大意义)。
这两个运算符是否与引擎盖下的某些魔法有关,或者\xe2\x88\x98.
只是被解释为与内积无关的不同运算符?
在所有现代 APL 中,包括 Dyalog,\xe2\x88\x98.
确实只是特殊情况,并且没有左操作数会.
使其表现得像\xe2\x88\x98.
\xe2\x80\x94 实际上,\xe2\x88\x98
是一个二元运算符,它不能是另一个二元运算符 ( .
) 的操作数。
从历史上看,\xe2\x88\x98.g
被视为一种缺陷f.g
,因为f.g
可以被视为f/
超过对角线值\xe2\x88\x98.g
,因此,删除算法的约简部分,仍然保留外积。\xe2\x88\x98
被用作一种“空函数”,但该符号后来被重载成为常规的二元(组合)运算符。
然而值得注意的是,艾弗森后来以“tie”运算符的形式概括了外积,其中左操作数是一个数字,表示“捆绑”维度的数量,留下所有其他维度来提供参数用于所有组合。因此,0 .g
变得等价于\xe2\x88\x98.g
并被\xe2\x88\x98
定义为装箱空向量(本质上等价于今天的\xe2\x8a\x82\xe2\x8d\xac
),并被视为与0
一起使用时的情况.
。