在APL中,函数不得作为参数传递给函数。但是,APL的运算符是高阶功能,可以将函数作为参数。有类似的原始运算符,例如 /(还原)来总结向量 + / v。函数 +是左操作数,并传递到操作员 /。
在Dyalog APL中,有一个原始操作员使用(命名为“ power”)应用函数n次,以便我们写下:
double←{2×⍵}
(double ⍣ 2) 7
28
(double ⍣ 10) 7
7168
您也可以编写自己的操作员(在大多数APL中)。在Dyalog APL中,我们可以将您的ApplyTwice运营商编写为:
applytwice←{⍺⍺ ⍺⍺ ⍵}
double applytwice 7
28
最后,您可以通过将功能放置在命名空间中并传递命名空间来传递功能。这就像一个使用方法的非常轻的实例。例如:
s←⎕NS ''
s.f←{2×⍵}
ApplyFTwice←{⍺.f ⍺.f ⍵}
s ApplyFTwice 7
28
在这种情况下,该函数必须命名为F,但是我们可以在其自己的名称空间中使用许多不同的函数。