首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNU APL和Dyalog APL中的分区行为

GNU APL和Dyalog APL中的分区行为
EN

Stack Overflow用户
提问于 2015-01-14 05:20:18
回答 1查看 726关注 0票数 4

在Dyalog中有⎕ML,它改变了分区的操作方式。当⎕ML←0

(5 ⍴ 1 0) ⊂ 5 5 ⍴ ⍳25

代码语言:javascript
复制
┌→─────────────────────┐
│ ┌→────┐ ┌→────┐ ┌→─┐ │
│ ↓ 1  2│ ↓ 3  4│ ↓ 5│ │ 
│ │ 6  7│ │ 8  9│ │10│ │
│ │11 12│ │13 14│ │15│ │
│ │16 17│ │18 19│ │20│ │
│ │21 22│ │23 24│ │25│ │
│ └~────┘ └~────┘ └~─┘ │
└∊─────────────────────┘

对于GNU APL中的相同语句(5 ⍴ 1 0) ⊂ 5 5 ⍴ ⍳25

代码语言:javascript
复制
┏→━━━━━━━━━━━━━┓
↓┏→┓  ┏→┓  ┏→┓ ┃
┃┃1┃  ┃3┃  ┃5┃ ┃
┃┗━┛  ┗━┛  ┗━┛ ┃
┃┏→┓  ┏→┓  ┏→━┓┃
┃┃6┃  ┃8┃  ┃10┃┃
┃┗━┛  ┗━┛  ┗━━┛┃
┃┏→━┓ ┏→━┓ ┏→━┓┃
┃┃11┃ ┃13┃ ┃15┃┃
┃┗━━┛ ┗━━┛ ┗━━┛┃
┃┏→━┓ ┏→━┓ ┏→━┓┃
┃┃16┃ ┃18┃ ┃20┃┃
┃┗━━┛ ┗━━┛ ┗━━┛┃
┃┏→━┓ ┏→━┓ ┏→━┓┃
┃┃21┃ ┃23┃ ┃25┃┃
┃┗━━┛ ┗━━┛ ┗━━┛┃
┗∊━━━━━━━━━━━━━┛

Dyalog APL也会在⎕ML←3时执行此操作。

是否有办法改变GNU APL的行为以获得相同的行为?

EN

回答 1

Stack Overflow用户

发布于 2015-01-14 11:04:00

简单的回答是no,因为GNU遵循IBM语言约定。

核心的APL语言是在20世纪70年代中期发展和完善的。然而,嵌套数组开始出现的时间稍晚,也许第一个初步的窥视实现出现在1980年左右。

当时的主要参与者是IBM、I.P.SharpAssociates、STSC和Dyalog,这是一个相对较新的公司。所有嵌套数组实现在一个或另一个细节上是不同的,可以说最大的区别是夏普实现的装箱数组,这是今天在J.

可以说,在当时,大型机IBM APL2可能拥有最大的市场份额。

STSC随后将更名为宏利,其实施将演变为APL+ 2000的APL+产品套件。

STSC和Dyalog为各种嵌套阵列亚种提供了一些兼容模式,STSC是)EVLEVEL系统命令、演化级和Dyalog的是[]ML的迁移级。

简而言之,Dyalog的[]ML可以设置为0、1、2或3。

[]ML 0是默认的本机Dyalog嵌套数组实现。

[]ML 1将一元epsilon的定义改为“登记”函数,这是一种超级ravel函数。

[]ML 2交换了用于“第一”和“混合”函数的符号的定义,并给出了“深度”函数的替代定义。

[]ML 3提供APL2兼容性。

就我个人而言,我几乎完全使用[]ML 3,因为我在大型机还在的时候用APL2进行了大量编程。

同样,GNU遵循APL2语言兼容性。实现交替封装行为的一种方法是编写掩护函数,以模拟其他实现的特性。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27936301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档