3

i.プリミティブは整数のリストを生成します:

   i. 10
0 1 2 3 4 5 6 7 8 9

いくつかの短いリストを続けて作成したい場合は、次のようにします。

   ;i."0 each [ 2 3 4
0 1 0 1 2 0 1 2 3

(私が望む結果)

ボクシング (そのeach) は、ここでは松葉杖です。それがないとi."0行列が生成されるからです。

   i."0 [ 2 3 4
0 1 0 0
0 1 2 0
0 1 2 3

(望まない結果)

i."0出力を行列ではなく配列にフォーマットするより良い方法はありますか?

4

1 に答える 1

1

いいえ、現在のソリューションよりも優れた方法はないと思います。i."0ベクトルを返す方法はありません。

"0副詞は、スカラーを受け入れることを強制しi.i.ベクトルを返します。 i.入力がスカラーではなくベクトルであることを知る方法はありません。The J primerによると、結果の形状は、引数のフレームと結果の連結です。

これまでに見つけた最短の「ボックスレス」ソリューションは

(*@$"0~#&,i."0) 2 3 4

使用するよりもまだ長い;i. each 2 3 4

于 2011-05-17T22:44:09.683 に答える