APL Dyalog嵌套数组元素转换

时间:2018-03-06 03:54:45

标签: arrays vector nested apl dyalog

我一直在使用Dyalog APL进行课堂作业,而且我在转换嵌套数组的每个元素时遇到了一个问题。

我有一个名为HOLD的字符数组,其中包含可变数量的7个字符长的数组。使用拆分转换我可以把它变成嵌套的只读嵌套数组,但是我需要它们作为字符向量。

我可以使用MIX运算符

将元素单独更改为字符向量
TEST←↑HOLD[1]  ⍝Test will be a character vector

但我似乎无法同时对每个元素执行此操作。

我最好的尝试看起来像

TEST←↑¨HOLD ⍝Test will be a nested array, seemingly identical to hold

但这似乎将每个元素保留为只读字符数组。如何同时在HOLD中的每个元素上执行此操作,并获得仅包含字符向量的嵌套数组?

1 个答案:

答案 0 :(得分:2)

您正在寻找的是" enlist" -primitive。它要求⎕ML为> 0,所以我在dfn中分配它(以保持范围本地): TEST←{⎕ML←1 ⋄ ∊⍵}HOLD

如果您的⎕ML已经> 0(请参阅status bar),您可以执行以下操作:TEST←∊HOLD

Try it online!