我想在一行中得到结果。我不需要新的维度

I want to get result in one line. I don't need new dimensions

   (1:)`(3:)@.(1&=)"0 i.2
1 3
   (1:,2:)`(3:)@.(1&=)"0 i.2
1 2
3 0

我想得到

1 2 3

没有新维度。没有零。

形状在 (1:)(1:,2:) 之间变化很大。

   $ 1: 'a'

   $ 1 $ 1: 'a'
1
   $ (1:,2:) 'a'
2
   (1&$ 1:)`(1&$ 3:)@.(1&=)"0 i.2
1
3

可能有更好的方法,但根据我的想法,您正在生成长度不等的数组,应该将其装箱,然后您想将它们变成一个列表。

因此:

   ; ((1:,2:)`(3:))@.(1&=)"0&.> i.2
1 2 3

可以重构和改进的地方:

   ;@:((1:,2:)`(3:)@.(1&=)each) i.2
1 2 3

您可以使用 (1:,2:,3:) 'ignored argument' 来构成列表,但这并不能解决您使用 @.

的原因

如果您想合并形状不规则的结果,Dane 关于装箱中间结果然后清除结果列表的评论是相关的。 (这可能就是你在这里尝试的。)