在 APL 中使用带有 without 函数的 each 运算符

Using the each operator with the without function in APL

我有一个包含以下数据的嵌套数组:

┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘

我想删除每个数字,这样它看起来像这样:

┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘

我尝试将无函数 (~) 与每个运算符 (¨) 和右参数“0123456789”一起使用,但出现长度错误。我还尝试将每个数字放在自己的数组中,如下所示:

┌→────────────────────────────────────────┐
│ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ │
│ │0│ │1│ │2│ │3│ │4│ │5│ │6│ │7│ │8│ │9│ │
│ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ │
└∊────────────────────────────────────────┘

但这也导致了长度错误。任何帮助将不胜感激。

假设使用 Dyalog APL,您可以尝试 direct-function 从字符串中删除数字 (⎕D),应用于数组中的每个字符串,例如

      yourData
┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘
      {⍵~⎕D}¨yourData
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘

您要查找的是 set-subtracting ("without-ing") 每个数字的 整个 组 (⎕D)。所以我们把数字集括起来作为一个整体作用于它:

      'ABC12' 'DEF34'~¨⊂⎕D
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘

Try it online!

注意这看起来很像你想要的:

Your data ('ABC12' 'DEF34') without (~) each (¨) of the whole () set of digits (⎕D).