在存在n值归约的情况下APL中/(归约)的解析规则?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在存在n值归约的情况下APL中/(归约)的解析规则?相关的知识,希望对你有一定的参考价值。

我以为APL的解析规则很简单:看到术语⍺ f ⍵时,让函数f接收参数⍺, ⍵。确实,对于APL中的归约运算符/,我们可以想到:

+/(1 2 3 4) ⍝ REDUCE(+, (1 2 3))
10

但是,在以下情况下,此逻辑被抛出窗口:

2+/(1 2 3 4) ⍝ REDUCE(2, +, (1, 2, 3)) ?
(3 5 7)

也就是说,它的解析似乎需要在中间解析树中看起来两个后面-一个后面检索操作符+,两个后面检索数字2

这大大增加了我关于如何阅读和解析APL表达式的思维模型---我在这里缺少什么吗?或者,如果这实际上是如何工作的,那么是否还有其他APL运算符“向后”超过1个子表达式?

答案

作为对APL的介绍,关于函数和数组的简单规则就足够了,但是一旦将运算符(尤其是二元运算符)加入混合,精简就会变得更加复杂。尽管函数/数组规则仍然适用,但是现在可以使用一个或多个运算符来derived函数。实际上,您可以最终向左看,以找出函数“开始”的位置。

例如,在上下文*∘*∘*∘*中,函数2*∘*∘*∘*3f(a,b)= a e e e b <>

3这是我们的数组

[*也许我们会将此功能单调应用于3,但这取决于…

[ nope:这是一个二进位运算符,它“抓住”其右侧的*来派生新函数

[*也许这是的左操作数,但这取决于…

[ nope:这是一个二进位运算符,它“抓住”其右侧的*来派生新函数

[*也许这是的左操作数,但这取决于…

事实上,这就是我解析APL的方式。但是,更精确的整体方法是按照documentationmodel implementation

使用结合强度表

以上是关于在存在n值归约的情况下APL中/(归约)的解析规则?的主要内容,如果未能解决你的问题,请参考以下文章

Python入门之经典函数实例——第3关:Map-Reduce - 映射与归约的思想

Python入门之经典函数实例——第3关:Map-Reduce - 映射与归约的思想

OpenCL 归约 1

聚类分析

组合器归约 Wolfram Mathematica

数据归约