如何将每个函数与二元函数一起使用?

问题描述 投票:0回答:1

我想为其左右参数的每个元素成对执行一个函数。

我已经看到 each 可以与二元操作数一起使用并尝试过

left fire¨ right
但它不起作用(我收到索引错误),而当我使用
为参数的每个元素运行函数时, 这里没有问题。各自的用途有什么不同吗?

map-function apl dyalog
1个回答
0
投票

不知道你的函数

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]
将失败。

© www.soinside.com 2019 - 2024. All rights reserved.