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

问题描述

所以,我有一个函数 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│
└─────┴─────┘