APL/J言語:”:(くオートコロン、フォーマット)

数字のテーブルはフォーマットすると見やすくなります。

   ]t=:(i.4 5)%3
      0 0.333333 0.666667       1 1.33333
1.66667        2  2.33333 2.66667       3
3.33333  3.66667        4 4.33333 4.66667
      5  5.33333  5.66667       6 6.33333

   ]f=: 6j2 ": t
  0.00  0.33  0.67  1.00  1.33
  1.67  2.00  2.33  2.67  3.00
  3.33  3.67  4.00  4.33  4.67
  5.00  5.33  5.67  6.00  6.33

左側引数は複素数で実数部分が列の幅を指定し、虚数部分で小数点以下何桁まで表示するかを指定します。

見かけはもとのテーブルと同じように見えますが、実際は文字列に変換されています。

   $t
4 5
   $f
4 30
   +/t
10 11.3333 12.6667 14 15.3333
   +/f
domain error
+/f
動詞".(クオートドット、実行)をこのような文字列テーブルに作用すると、対応する数字のテーブルを返します。
   ". f
   0 0.33 0.67    1 1.33
1.67    2 2.33 2.67    3
3.33 3.67    4 4.33 4.67
   5 5.33 5.67    6 6.33
  
   +/ ". f
10 11.33 12.67 14 15.33
演習: 13.1 前章で定義されたプログラムを用いて、下記の表現を実験してみよう。
5j2 ": d=: %: i.12
5j2 ":,.d
fc=: 5j2&":@,. 
fc d
20 (fc@h3 ,. h5) d
20 (fc@h3 ,. '|'&,.@h5) d
plot=: fc@h3,.'|'&,.@h5
20 plot d
   h1=: >./
   h2=:h1-<./
   h3=: h1@]-i.@[*h2@]%