在 APL 中如何将字符串转换为单元向量

In APL how to turn a string into a one cell vector

所以,我有一个将字符串作为输入的函数 f。我想创建一个将 f 映射到字符串向量的函数 g。即

g 'Hello' 'world'

应该屈服

(f 'Hello')(f 'world')

这是我所做的:

g ← {f¨⍵}

这对上面的例子来说效果很好。但是,当正确的参数只是一个字符串时它不起作用,因为它将 f 映射到该字符串的每个字符。例如:

g 'Hello'

产量

(f 'H')(f 'e')(f 'l')(f 'l')(f 'o')

当然,我希望输出为 f 'Hello'

我会写

g ← {f¨⊂⍵}

因此 'Hello' 将被解释为

┌─────┐
│Hello│
└─────┘

但是 'Hello' 'world' 将被解释为

┌─────────────┐
│┌─────┬─────┐│
││Hello│world││
│└─────┴─────┘│
└─────────────┘

然后无法正确映射。

有没有办法简洁地解决这个问题?

您正在寻找⊆

      ⊆'hello'
┌─────┐
│hello│
└─────┘
      ⊆'hello' 'world'
┌─────┬─────┐
│hello│world│
└─────┴─────┘