是否有APL成语来获取所有字母字符的向量?

时间:2014-07-06 07:16:01

标签: cross-platform apl

我知道您可以使用∊⍕¨⍳10获取所有数字的字符向量,但是除了手动输入'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'之外,是否还有一个独立于平台的习惯用于获取所有字母字符的向量?我知道我可以通过Dyalog APL ⎕AV[(⍳26)+(⎕AV⍳'a')-1]来获取所有小写字符(以及通过将'a'更改为'A'来大写),但我认为系统变量⎕AV不是& #39;在其他环境中可用。

3 个答案:

答案 0 :(得分:4)

不是。

在Dyalog APL中,我通常使用⎕A表示大写字符,⎕UCS 96+⍳26表示小写字符。 (并且⎕A,⎕UCS 96+⍳26代表整个字母表。)

⎕AV通常存在,但其内容不是标准的。 (例如,NARS2000' ⎕AV与Dyalog不同。)顺便说一下,Dyalog ⎕AV被认为已被弃用,而不是⎕UCS。任何实现⎕UCS的APL都会以相同的方式执行,因为Unicode是一个集合标准。

如果您想要一种保证与实现无关的可读方式来定义字母表,我确实建议您只在您的工作区中存储abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

但是,我不建议尝试编写与实现无关的APL代码。 APL方言相当不同,所以这显然是非常重要的(如果可能的话,对于复杂的代码而言),并且难以维护。

答案 1 :(得分:1)

尽管Quad名称(⎕xxx)通常不区分大小写,但MicroAPL会区分⎕A⎕a,因此⎕a,⎕A'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

答案 2 :(得分:0)

是的,在最新版本*中,为⎕A,819⌶⎕A撰写ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Try it online!

Documentation.

* 14.1的最新版本,以及15.0及更高版本的所有版本。