|.(たてぼうドット)


APLでは丸にたてぼうやよこぼうの配列を逆順にしたり(reverse)、回転したり(rotate)、シフトしたり(shift)する動詞(関数)があります。
これがJ言語では|.(たてぼうドット、パイプラインドット)の役割です。また、前回紹介した"(クオート、ランクコンジャンクション、ランク接続詞)を利用することによってわかりやすくなっています。たぶん丸にたてぼうとよこぼうの両方の役割をひとつでカバーしていると思う。

   ]v=:4 5 3 2 6
4 5 3 2 6
   |.v
6 2 3 5 4
   ]m=:3 4$i.12
0 1  2  3
4 5  6  7
8 9 10 11
   |.m
8 9 10 11
4 5  6  7
0 1  2  3
   |."1 m
 3  2 1 0
 7  6 5 4
11 10 9 8

ちなみにマトリクスのたてよこを入れ替えたものを作る動詞(関数)は|:(パイプラインコロン、たてぼうコロン)です。

   |:m
0 4  8
1 5  9
2 6 10
3 7 11
.(たてぼうドット、パイプラインドット)を二項動詞として使うと、左辺の数字分だけシフトします。マイナスだと右シフトです。
   _1 |. 'abcdef'
fabcde