我想为其左右参数的每个元素成对执行一个函数。
我已经看到 each 可以与二元操作数一起使用并尝试过
left fire¨ right
但它不起作用(我收到索引错误),而当我使用 ⊃
为参数的每个元素运行函数时, 这里没有问题。各自的用途有什么不同吗?
不知道你的函数
fire
是什么,也不知道参数是什么样的,诊断问题有点困难。但是,如果您避免 fire
成为单行 dfn(只需在最后一个 }
之前插入换行符就足够了),那么当发生索引错误时,APL 应该向您显示 fire
的失败行并带有 下面的∧
指出了错误发生的具体位置。
使用
¨
时常见的错误来源是空参数。 Dyalog APL 将始终至少调用该函数一次,因此将填充原型值,包括任何数字的 0
。这可能会导致索引错误,例如如下所示:
'abc' 'def' {⍺[⍵]}¨ 1 2
ae
(0⍴'abc' 'def') {⍺[⍵]}¨ (0⍴1 2)
INDEX ERROR
(0⍴'abc' 'def') {⍺[⍵]}¨ (0⍴1 2)
∧
作为原型元素,
{⍺[⍵]}
将使用 ' '
和 0
进行调用,但是,由于我们使用基于 1 的索引,' '[0]
将失败。