ボックスとパーティション

用法APL結果と例(単項) 用法結果と例(両項)
< Box
<
右引数をボックスで囲む。  
     < i.3 3
+-----+
|0 1 2|
|3 4 5|
|6 7 8|
+-----+
Less than
小さい
X > Y

>
Open
>
ボックスを開く。      

>  < i.3 3
0 1 2
3 4 5
6 7 8
 ":&.> 
一度開いて文字化し再度閉じている


Larger than
大きい
X > Y

;
Raze
ほぐし
; Y
(APL) 主軸に沿って右引数をほぐす
    ; i.2 3         
 0 1 2 3 4 5         
   
    ;/ i.2 3
+-----+-----+
|0 1 2|3 4 5|
+-----+-----+

 (Y=.<"0 i. 3 3);;("1) Y
+-------+-----+
|+-+-+-+|0 1 2|
||0|1|2||3 4 5|
|+-+-+-+|6 7 8|
||3|4|5||     |
|+-+-+-+|     |
||6|7|8||     |
|+-+-+-+|     |
+-------+-----+
配列の形を保ったほぐしには ;"1 や;"2が有効
Link
結合
X ; Y
左右の引数をボックスの形
で結合する。       

   0 2 4 6;1 3 5 7
+-------+-------+
|0 2 4 6|1 3 5 7|
+-------+-------+

(

入れ子の配列(ネスティッドアレー)

L.
Level
レベル
L. Y
右引数のボックスのレベルの の深さを与える。

Yが空又は オープン形のときは0である

    L. i.5          
0
   
    L. 1 2;3 4        
1
 
 (<0 2,: 4 6);1 3 5 7
+-----+-------+
|+---+|1 3 5 7|
||0 2||       |
||4 6||       |
|+---+|       |
+-----+-------+
 
  L. (<0 2,: 4 6);1 3 5 7
2
無し

L:

Level-At
レベル
副詞
u L:n Y
動詞uをL:nというレベ ル(深度)のボックス内で演算する
   +/(L:0)1 2 3;3 4 5
+-+--+
|6|12|
+-+--+

Y=.(<0 2,: 4 6);1 3 5 7
+-----+-------+
|+---+|1 3 5 7|
||0 2||       |
||4 6||       |
|+---+|       |
+-----+-------+

((+/ L:0);(+/ L:1))Y
+----------+-----+--+
|+-----+--+|+---+|16|
||+---+|16|||0 2||  |
|||4 8||  |||4 6||  |
||+---+|  ||+---+|  |
|+-----+--+|     |  |
+----------+-----+--+
  L:0         L:1
用法APL結果と例(単項) 用法結果と例(両項)
{::
Map
マップ
{:: Y
ボックスへのパスを表示   
   
       ] Y=. 2 3;(2;3);i.2 3
+---+-----+-----+
|2 3|+-+-+|0 1 2|
|   ||2|3||3 4 5|
|   |+-+-+|     |
+---+-----+-----+
   
   {:: Y
+---+-------------+---+
|+-+|+-----+-----+|+-+|
||0|||+-+-+|+-+-+|||2||
|+-+|||1|0|||1|1|||+-+|
|   ||+-+-+|+-+-+||   |
|   |+-----+-----+|   |
+---+-------------+---+
Fetch
フェッチ
{:: Y
左引数で与えた指標に従い 右引数のサブアレイの要素 X {:: Yを取り出す。
   (2; 1 2 ){::Y
5
  
  (1;1 2){:: 5;i.2 3 4
+-+-----------+
|5| 0  1  2  3|
| | 4  5  6  7|
| | 8  9 10 11|
| |           |
| |12 13 14 15|
| |16 17 18 19|
| |20 21 22 23|
+-+-----------+
  
  (1;1 2){:: 5;i.2 3 4
20 21 22 23

右側(1)の下段(1)の第2行を取り出す
/
Prefix
前から v / Y
(副詞)
動詞uを1から#Yまで逐次 累加した組合せに作用させる
   <\1 2 3
+-+---+-----+
|1|1 2|1 2 3|NB.RunningSum
+-+---+-----+
 
   +/\ 1 2 3
   1 3 6

BOXの代わりに動詞を置くことができる。一々開いたり
L:0は不要

  <\i. 3 3
+-----+-----+-----+
|0 1 2|0 1 2|0 1 2|
|     |3 4 5|3 4 5|
|     |     |6 7 8|
+-----+-----+-----+
\[ \backslash \]
Infix
中から \[ X u \backslash Y \]
左引数を区切りに前から逐 次取り出した組合せに作用

Xが正ならオーバーラップ させ、負のときは重複なし

   3<\ 1 2 3 4 5
+-----+-----+-----+
|1 2 3|2 3 4|3 4 5|
+-----+-----+-----+
   
   _3<\ i.9
+-----+-----+-----+
|0 1 2|3 4 5|6 7 8|
+-----+-----+-----+
   
   3+/\ 1 2 3 4 5
6 9 12
 
 3 (mav=:+/\%[) i.10
1 2 3 4 5 6 7 8 NB.移動平均
\[ \backslash . \]
Surfix
後から \[ u \backslash . Y \]
(副詞)
動詞uを1から#Yまで前か ら減少させた組合せに作用
   <\. 1 2 3
+-----+---+-+
|1 2 3|2 3|3|
+-----+---+-+

Reverse runningSum

   +/\. 1 2 3
6 5 3
Outfix
外から
\[ X u \backslash . Y \]
   3<\. 1 2 3 4 5 6
+-----+-----+-----+-----+
|4 5 6|1 5 6|1 2 6|1 2 3|
+-----+-----+-----+-----+
  
   3+/\. 1 2 3 4 5 6
15 12 9 6
/.
Oblique
斜め u /. Y
m /. Y (接続詞)
(APL) 動詞(u)の場合は、テーブル の形の右引数に対して右上か ら左下に斜めに作用させる。

ジェランド(m)の場合は、m の各要素を右引数の各アイテ ムに逐次作用させる。

Y;+//.Y=.i.3 4
+---------+---------------+
|0 1  2  3|0 5 15 18 17 11|
|4 5  6  7|               |
|8 9 10 11|               |
+---------+---------------+
\[ \begin{array}{cccc} \diamond&\swarrow&\swarrow&\swarrow\\ \swarrow&\swarrow&\swarrow&\swarrow\\ \swarrow&\swarrow&\swarrow&\diamond\\ \end{array} \]
Key
キー
X u/.Y
X m/.Y
動詞(u)の場合は、Xをキ ーとして右引数の要素をグ ループ別に一縛りにし配分する。

ジェランド(m)の場合は、 mの各要素を逐次適用する
\[ \begin{array}{ccccccc} 0 & 1 & 2 & \rightarrow & 1 & 2 & 3 \\ 3 & 4 & & \rightarrow & 1 & 3 & \\ 5 & 6 & & \rightarrow & 2 & 1 & \\ \end{array} \]

  1 2 3 1 2 3 1 


左はi.7 右はboxの番号


  X +//. i.7   
 9 6 6 NB.Box毎に合計          
 
 {X +:/. i.7 NB. double
+------+------+-----+
|0 6 12|2 10 0|4 8 0|
+------+------+-----+
用法APL結果と例(単項) 用法結果と例(両項)
;.
Cut
区切り
(接続詞)
u ;.n Y
(nはカットの型)
(APL) 右引数のフレット(先頭又は末尾のアイテム)で区切る。
  ];.0 L=. 'hand in hand'
dnah ni dnah

(

一般に<;.3 y(リスト)は(#y)<;.3 yと同じ演算。 

<;.3 D(3 2 のテーブル)は2 2 <;.3 Dと同じ演算

;._3 Dについても同様

Cut
区切り
(接続詞)
X u;.n Y
n=0のとき左引数で指定 した個数の要素を取り出す。

n=1,2のときはブール数の1の個所でカットする

A;(2 2;2 1)];.0(L:0)A=.i.3 2
+---+---+-+
|0 1|0 1|0|
|2 3|2 3|2|
|4 5|   | |
+---+---+-+

2行2列と2行1列に区切る
(~: a)<;.1 a=.3 3 4 4 4 5 5
+---+-----+---+
|3 3|4 4 4|5 5| 
+---+-----+---+

~:で1 0の指標作成

<;.1は先頭から1が現れるごとに区切って出力。

(~:a)<;._1 a=.3 3 4 4 4 5 5
+-+---+-+
|3|4 4|5|
+-+---+-+

<;.1の先頭を削除する 

(|.~:a)<;.2 a=.3 3 4 4 4 5 5
+---+-----+---+
|3 3|4 4 4|5 5|
+---+-----+---+

<;.2は末尾から1が現れるごとに区切って出力。 
n=3 は左引数の形でカット

   1 2<;.3 i.3 2
+---+-+
|0 1|1|
+---+-+
|2 3|3|
+---+-+
|4 5|5|
+---+-+