在 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│
└─────┴─────┘
所以,我有一个将字符串作为输入的函数 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│
└─────┴─────┘