我使用(迷人的)J语言的第一个小时,看起来很不错,但我遇到了我无法在文档的帮助下分析的第一个问题。
如何计算字符串中的字符:
y =. 'hello world'
(~. y) ; " 0 (+/ " 1 =y)
┌─┬─┐
│h│1│
├─┼─┤
│e│1│
├─┼─┤
│l│3│
├─┼─┤
│o│2│
├─┼─┤
│ │1│
├─┼─┤
│w│1│
├─┼─┤
│r│1│
├─┼─┤
│d│1│
└─┴─┘
但我怎么能丢掉盒子?我认为;
在一个水平框中加入两个项目,但如果没有框字符,似乎很难做到这一点。我怎么得到:
h 1
e 1
l 3
等等?它是演示选项吗?
答案 0 :(得分:5)
嗯,对于初学者,你必须注意你不能分组不同类型的矩阵元素。拳击在这里有帮助,因为它将所有元素放在同一只脚上:所有盒子。
您可以做的一件事是格式化(":
)文字和针脚(,.
)而不是链接(;
):
(~.y),. (2 ": "0 +/ "1 = y)
2 ":
中的2作为格式指示符,2位数宽,填充空格。
更新:
或者以Eelvex的风格:
({. , 2&":&#) /. ~ y
这里有一些可能是新的元素。使用append(,
)而不是stitch(,.
),因为key(/.
)的每个结果都是单独生成的,我们并没有并排放置两个数组,而是创建一个大排一次一行。