:(たてぼうコロン、パイプコロン,トランスポーズ)という動詞は、単項動詞としてテーブルに作用させると表のたてよこが入れ替わるのでわかりやすくて便利です。これを二項動詞として使うと、指定した軸(axis)が入れ替わるのですが、これについていろいろやってみて軸の数え方を誤解していたことに気づきました。2次配列(テーブル)のたてよこを入れ替えることは1軸と0軸を入れ替えることで、3次配列の場合の1枚目の表のたてよこを入れ替えたい場合は、これが2軸目と1軸目の入れ替えに相当する。つまり1=>2、0=>1となる。同様に4次配列だと3 2になるのかと思います。他の軸の入れ替えも場合によっては用途があると思いますが、自由自在にできるので用途(イメージ)を明確にしてからでないとこんがらかる。Lisp的に(((0 1) (2 3)) *1 ((2 3) (6 7)))を作りたい、とおもったとすれば、下記の例から(0 2 | :)という動詞になることになります。 |
a=:i.2 2 b=:i.2 2 2 c=:i.2 3 4 a ; (|:a) ; (0 1|:a) ; (1 0|:a) +---+---+---+---+ |0 1|0 2|0 1|0 2| |2 3|1 3|2 3|1 3| +---+---+---+---+ b;(|:b);(0 1|:b);(1 0|:b);(0 2|: b);(2 0|:b);(1 2|:b);(2 1|:b) +---+---+---+---+---+---+---+---+ |0 1|0 4|0 2|0 4|0 1|0 4|0 1|0 2| |2 3|2 6|4 6|2 6|4 5|1 5|2 3|1 3| | | | | | | | | | |4 5|1 5|1 3|1 5|2 3|2 6|4 5|4 6| |6 7|3 7|5 7|3 7|6 7|3 7|6 7|5 7| +---+---+---+---+---+---+---+---+ c;(|:c);(2 1|:c) +-----------+-----+--------+ | 0 1 2 3| 0 12| 0 4 8| | 4 5 6 7| 4 16| 1 5 9| | 8 9 10 11| 8 20| 2 6 10| | | | 3 7 11| |12 13 14 15| 1 13| | |16 17 18 19| 5 17|12 16 20| |20 21 22 23| 9 21|13 17 21| | | |14 18 22| | | 2 14|15 19 23| | | 6 18| | | |10 22| | | | | | | | 3 15| | | | 7 19| | | |11 23| | +-----------+-----+--------+
*1:4 5) (6 7)))とイメージしてこれから(((0 1) (4 5