如果你用多个字符层压(,:
)字符串,你会得到一个很好的填充数组:
x =: 'x'
y =: 'yolo'
z =: 'zebra'
y ,: z
yolo
zebra
如果您叠加单个字符,则会复制标量:
y ,: x
yolo
xxxx
您可以通过将标量转换为带$
:
y ,: 1$ x
yolo
x
但如果你是盲目的话,情况就不那么好了:
y ,: 1$ z
yolo
z
是否有一种简单而直接的方法来层叠字符串x和y而不提前知道其中一个字符串是否只有一个字符长?
答案 0 :(得分:3)
在层压之前添加一个带,
的轴:
y,:,x
yolo
x
y,:,z
yolo
zebra
答案 1 :(得分:1)
f =:,:& ,当只有2个字符串时工作正常,但是当有几个字符串时,ravel感觉不是正确的。
f=: ,: & ,
'yellow' f 'x'
yellow
x
'yellow' f 'x' f 'blue'
yellow
x blue
出于这个原因,我更愿意引入一个动词来强制两个参数排名2.然后你可以使用append代替层叠。
d2=: 13 : '(_2{. 1 1,$y)$,y'
g=: ,&d2
'yellow' g 'x'
yellow
x
'yellow' g 'x' g 'blue'
yellow
x
blue