用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
"
Rank ランク u"n Y |
|
Rank
ランク X u"n Y |
|
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
i.
Integers 整数生成 i. Y | \[ \iota \] |
0からY-1までの整数列を
生成する。
i.4 0 1 2 3 i. _4 3 2 1 0 負の整数なら降順の整数列 i.2 3 0 1 2 3 4 5 テーブルの形でも生成できる | Index- of インデクス X i. Y |
右引数が、左引数の
中で最初に表われる位置のインデ
クスを返す。
7 8 9 7 i. 8 7 9 7 9 10 1 0 2 0 2 4 7 8 9 7 i. 8 7 9 6 9 1 0 2 4 2 左引数にない場合には#Xを返す。 i.~'JAPLA' 0 1 2 3 1 |
i:
Steps ステップ i: Y |
マイナス側も含めた整数列を生成 i:4 _4 _3 _2 _1 0 1 2 3 4 i:_4 4 3 2 1 0 _1 _2 _3 _4 | Index- of Last |
右引数が、左引数の
中で最後に表われる位置のインデ
クスを返す。
7 8 9 7 i: 8 7 9 7 9 10 1 3 2 3 2 4 i:~'JAPLA' 0 4 2 3 4 | |
$
Shape- of 形 $ Y | \[ \rho \] |
Yの各ランクの要素数を返す ]S=. i.3 4 0 1 2 3 4 5 6 7 8 9 10 11 $ S 3 4 |
shape
変形 X $ Y |
Xの形にYを変形する。 2 2 $ i.3 4 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 3 3 $ 'abcdeghijklm' abc deg hij |
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
#
Tally アイテム数 # Y |
アイテム(引き数より1つラ
ンクの低いセル)の数
# i.3 4 3 # 4 1 アトムのアイテムはそれ自身 mean=. +/%# NB. mean\[\dfrac{\sum x}{n}\] nの値が得られる |
Copy
複写 (圧縮) X # Y |
| |
#^:_1 | \[ \backslash \] |
Expand
expand 拡張 X#^:_1Y |
|
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
,
Ravel リスト化 ,Y |
右引数をリストに変形する。 ]S=.i.2 3 0 1 2 3 4 5 , S 0 1 2 3 4 5 ($ 3);$ ,3 ++-+ ||1| ++-+ アトムもリストに変形される |
Append
連結 X , Y |
右引数を左引数の最大ラン
クの方向に連結する。
左引数がリストなら横に、 テーブルなら下に連結する 1 2 3,4 5 6 1 2 3 4 5 6 'japan','korea' japankorea S; (S=. i. 2 3),6 7 8 +-----+-----+ |0 1 2|0 1 2| |3 4 5|3 4 5| | |6 7 8| +-----+-----+ S Append要素数が不足なら0を付加 して成形される。 | |
,.
Ravel Items テーブ ル化 ,. Y |
見かけはアトムのようだが ,. i.3 0 1 2 ,. i.2 2 3 0 1 2 3 4 5 6 7 8 9 10 11 $ ,. i.2 2 2 3 2 12 あくまでテーブル化 |
Stitch
縦連結 X ,. Y |
x,.yは,.yとx
を(,)で連結したのと同じ(side by side)
1 3 5 ,. i.3 1 0 3 1 5 2 5 ,. i.3 2 5 0 1 5 2 3 5 4 5 |
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
,:
Itemize アイテム化 ,: Y |
ランクを1つ増やした高次の アレイを作る。 ]S=.,: i.2 3 0 1 2 3 4 5 見かけはテーブルのようだが $ S 1 2 3 NB.1が入っている $ ,: 3 1 3次のテーブル $ ,./ ,: i. 2 3 2 3 $ ,/ ,: i. 2 3 2 3 次数を減じる方法 |
Laminate
層連結 X ,: Y |
セルを積重ねて、1つ高いラ ンクになるように連結する (上層下層) (i.6),: 3 4 5 6 7 8 0 1 2 3 4 5 3 4 5 6 7 8 'korea',: 'japan' korea japan ]S=.(i.3),:i.2 3 0 1 2 0 0 0 NB. add 0 0 1 2 3 4 5 $ S 2 2 3 | |
|.
Reverse 逆順 |. Y | \[ \Phi \] |
アイテム(引数より1つラ
ンクの低いセル)を逆順に
|. 'abcdefg' gfedcba |. 3 3$'abcdefghi' ghi def abc |. i.2 2 2 4 5 6 7 0 1 2 3 アイテムの順序を反対にする |
Rotate
回転 \[X \ \vert .Y \] |
右引数のアイテムをX個だけ回転する。
1 |. i.5 1 2 3 4 0 _1 |. i.5 4 0 1 2 3 (Xが負なら後ろから回転) 2 |. i.5 2 3 4 0 1 (1 |.を2度適用と同じ) (i.3 4);0 _1 _2|."(0 1)i.3 4 +---------+---------+ |0 1 2 3| 0 1 2 3| |4 5 6 7| 7 4 5 6| |8 9 10 11|10 11 8 9| +---------+---------+ twist ランク"0 1を用いた捻り |
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
\[ \vert: \]
Transpose 転置 \[ \vert : Y \] | \[ \phi \] |
右引数のセルを転置させる。 (i.3 4);|: i.3 4 +---------+------+ |0 1 2 3|0 4 8| |4 5 6 7|1 5 9| |8 9 10 11|2 6 10| | |3 7 11| +---------+------+ (|:) (i.2 2 2);|: i. 2 2 2 +---+---+ |0 1|0 4| |2 3|2 6| | | | |4 5|1 5| |6 7|3 7| +---+---+ (|:) $ |: i.3 4 5 5 4 3 |:(3面4行5列のアレイ) は5面4行3列のアレイになる。 |
Trans
pose
2項転置 \[ X \vert : Y \] |
Xで指定した軸が最も若い 軸(0軸)となるよう転置。 1 |: i.2 3 3 4 5 0 1 2 Xで指定した軸が0軸にな るように変形されていて、 (0 1)->(1 0)のよう に軸が変換される。 $ 0 |: i.2 3 4 3 4 2 (0 1 2)->(1 2 0) のように軸が変換される。 $ 0 1 |: i.2 3 4 4 2 3 (0 1 2)->(2 0 1) (<0 1) |:i.4 4 0 5 10 15 対角要素が取り出される。 (<0 1 2) |: i.2 3 4 0 17 (0 0 0)と(1 1 1)の 要素が取り出される。 <"2 i.2 3 4 +---------+-----------+ |0 1 2 3|12 13 14 15| |4 5 6 7|16 17 18 19| |8 9 10 11|20 21 22 23| +---------+-----------+ |
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
$.
Sparce 粗行列 $. Y |
大型粗行列の0以外の数のみをアドレスと0以外の数で
表示する。 このアレーの形のままで演算できる。(スパースアレー) Y=.4 4 $(100+i.4) 2 7 8 13}16$0 0 0 100 0 0 0 0 101 102 0 0 0 0 103 0 0 $. Y 0 2 │ 100 1 3 │ 101 2 0 │ 102 3 1 │ 103 3* $. Y NB.3 * 0 2 │ 300 1 3 │ 303 2 0 │ 306 3 1 │ 309 戻す $.^:_1 (3* $. Y) 0 0 300 0 0 0 0 303 306 0 0 0 0 309 0 0 |
Sparse
n $. Y |
要素の表示方法で左引数による8種の
方法がある
2 $. Y 0 1 軸の表示 3 $. $. Y 0 1 要素 4 $. $. Y 0 2 1 3 2 0 3 1 アドレス 5$[. $. Y 100 101 102 103 値 7 $. $. Y 4 元の行列の行 8$. $. Y 0 2 | 100 1 3 | 101 2 0 | 102 3 1 | 103 粗行列の表示 |
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
{
Catalogue カタログ { Y |
要素の組み合わせ(カタログ)を作る
{ i. 3 3 +-----+-----+-----+ |0 1 2|3 4 5|6 7 8| +-----+-----+-----+ {1 2 3;4 5 6 +---+---+---+ |1 4|1 5|1 6| +---+---+---+ |2 4|2 5|2 6| +---+---+---+ |3 4|3 5|3 6| +---+---+---+ {'japan';'korea' +--+--+--+--+--+ |jk|jo|jr|je|ja| +--+--+--+--+--+ |ak|ao|ar|ae|aa| +--+--+--+--+--+ |pk|po|pr|pe|pa| +--+--+--+--+--+ |ak|ao|ar|ae|aa| +--+--+--+--+--+ |nk|no|nr|ne|na| +--+--+--+--+--+ {@> i.2 3 +-+-+-+ |0|1|2| +-+-+-+ |3|4|5| +-+-+-+ <"0 i.2 3でも同じ結果 |
{
From 選択 X{Y |
左引数で指定したアイテム
を取り出す。
(i. 3 4); 1 2 { i. 3 4 +---------+---------+ |0 1 2 3|4 5 6 7| |4 5 6 7|8 9 10 11| |8 9 10 11| | +---------+---------+ 0{i.3 4 0 1 2 3 0行の取り出し (i.3 4); 1 2 { "1 i.3 4 +---------+----+ |0 1 2 3|1 2| |4 5 6 7|5 6| |8 9 10 11|9 10| +---------+----+ 1,2列の取り出し (i.3 4); (<1 2;0 2){ i.3 4 +---------+----+ |0 1 2 3|4 6| |4 5 6 7|8 10| |8 9 10 11| | +---------+----+ ブロックで取り出すときは 2重ボックスで指定する。 <1 2;0 2 +---------+ |+---+---+| ||1 2|0 2|| |+---+---+| +---------+1,2行の0,2列のポイント |
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
{.
Head 先頭取り {. Y {.Y |
{. A=.1 2 3 4 1 右引数の先頭アイテム(要素) を取り出す。 {. B=.i.3 4 0 1 2 3 先頭アイテム(行)の取り出し {. C=.i.2 3 4 0 1 2 3 4 5 6 7 8 9 10 11 先頭のテーブルの取り出し。 |
Take
取り X {.Y |
Xが正整数のときは、Yの
先頭からX個のアイテムを
また負なら末尾から\[ \vert X \vert \] 個 のアイテムを取り出す。 2 {. A=.1 2 3 4 1 2 _3 {. A 2 3 4 (i.3 4); 2 3{. i.3 4 +---------+-----+ |0 1 2 3|0 1 2| |4 5 6 7|4 5 6| |8 9 10 11| | +---------+-----+ 2行3列のアイテム | |
}.
Behead 先頭落し }. Y |
}. A=.1 2 3 4 2 3 4 先頭アイテム(要素)を落す。 }. B=.i.3 4 4 5 6 7 8 9 10 11 先頭のアイテム(行)を落す。 }. C=.i.2 3 4 12 13 14 15 16 17 18 19 20 21 22 23 先頭のテーブルを落す。 |
Drop
落し X }. Y |
Xが正整数のときは、Yの
先頭からX個のアイテムを
また負なら末尾から\[\vert X \vert \]個
のアイテムを落す。
2 }. 1 2 3 4 8 9 10 11 _2 }. B 0 1 2 3 1 2 }. i.3 4 6 7 10 11 先頭から1行2列を落す。 ind=.-.(i.4)e. 0 2 0 1 0 1 NB. 0 2 column (i.3 4); ind #"1 i. 3 4 +---------+----+ |0 1 2 3|1 3| |4 5 6 7|5 7| |8 9 10 11|9 11| +---------+----+ 指定列の落とし。行なら ランク指定なし | |
Tail
末尾取り {: Y | (APL) |
右引数の最終アイテムの取リ {: 1 2 3 4 4 {: i.3 4 8 9 10 11 最終アイテム(行)の取り | (無し) | |
}:
Curtail 末尾落し }: Y |
右引数の最終アイテムの落し }: 1 2 3 4 1 2 3 }: i.3 4 0 1 2 3 4 5 6 7 最終アイテム(行)の落し | (無し) |
Y=.1 0 1 0 1 } Y
APLの場合には、左矢印(<--) で内容が直ちに修正される。
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
}
Item-Amend アイテム 修正 m } Y |
mで指定したYの各アイテム
に変更したものを表示する。
Y=.'japan','korea',:'china' japan korea china 1 0 1 2 0 } Y karnn(i.# Y)番目を、0,1,2行を指定して取り出す |
Amend
修正 X m }Y |
インデクスmで指定したY
の要素をXに変更して表示
'*' 1 3 5 7}'abcdefghij' a*c*e*g*ij 'BD' 1 3 } 'abcd' aBcD m=.0 1;1 2;2 3 NB.index (i.3 4);(120 130 140)m}i.3 4 +---------+-------------+ |0 1 2 3|0 120 2 3| |4 5 6 7|4 5 130 7| |8 9 10 11|8 9 10 140| +---------+-------------+ (要素の変更はボックス) 12 13(<0 1;1 2)}i.3 4 0 12 13 3 4 12 13 7 8 9 10 11 0,1行の1,2列の個所を修正 (100+i.2 4)(<<0 2)} A 100 101 102 103 4 5 6 7 104 105 106 107 0,2行を修正 (100+i.3 2)(<<0 2)}"1 A 100 1 101 3 NB.rank("1) 102 5 103 7 104 9 105 11 0,2列を修正 |
/:
Grade -up 昇順 /: Y |
Yを昇順に並べるインデクス を出力する。 /:Y=. 23 11 13 31 12 1 4 2 0 3 Yを取り出す順を示す。最小値はインデクス1に、最 大値はインデクス3にある。 1 4 2 0 3{Y 11 12 13 23 31 /:~ Y 11 12 13 23 31 Y2=. 3 4 \[ 12?.60 6 47 13 46 34 44 8 37 5 59 56 32 /: Y2 2 0 1 NB.列を取り出す順 /:~ Y2 NB.upsort 5 59 56 32 6 47 13 46 34 44 8 37テーブルのときは行単位に先 頭から順番に比較したときの 数値に対する指標 /: 'ASSOCIATION' 0 6 4 5 8 10 3 9 1 2 7 /:~'ASSOCIATION' AACIINOOSST 文字の場合はアルファベット順。 |
Sort
昇順ソート X /: Y |
XをYで与えた指標に従っ
て(昇順に)並べ替える。
74 33 66 /: 2 1 0 66 33 74 2 1 0 { 74 33 66 66 33 74 Y=.23 11 13 31 12 Y /: Y 11 12 13 23 31 /:~ Y 11 12 13 23 31 (/:Y){ Y 11 12 13 23 31 いずれも昇順に並べ替える 'JAPAN APL ASSOCIATION' /:~'JAPAN APL ASSOCIATION' AAAAACIIJLNNOOPPSST A=.(7 2\[20?.30),3 4,:13 3 A;/:~ A +-----+-----+ | 6 27| 3 4| | 9 16| 3 11| |28 19| 6 27| |26 10| 9 16| |20 14|13 3| | 3 11|13 29| |13 29|20 14| | 3 4|26 10| |13 3|28 19| +-----+-----+ (前) (後)次列も左列の順の範囲で並べ替える |
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
\[ \backslash : \]
Grade -down 降順 \[\backslash : Y \] |
Yを降順に並べるインデクス を出力する。 \: 23 11 13 31 12 3 0 2 4 1 最大値はインデクス3に、最 小値はインデクス1にある。 A=.s: ' 山川 谷川 川田 太田 相生' /:~ A `太田 `山川 `川田 `相生 `谷川 \:~ A `谷川 `相生 `川田 `山川 `太田 (漢字は複雑) |
Sort
降順ソート X \: Y |
XをYで与えた指標に従って
(降順に)並べ替える。
74 33 66 \: 2 1 0 74 33 66 \:~ Y=.23 11 13 31 12 31 23 13 12 11 'JAPAN APL ASSOCIATION' \:~ A TSSPPOONNLJIICAAAAA Y 74 1 26 23 33 87 34 10 66 50 20 45 \: Y 0 2 1\:~ Y 74 1 26 23 66 50 20 45 33 87 34 10 | |
A.
Anagram Index A. Y |
数列や文字列の置換のインデ
ックスを与える。
]y=.(i.6)A.0 1 2 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 A. y 0 1 2 3 4 5 |
Anagram
辞書式 順序 X A. Y |
Xで与えたインデックスに
対応するYの置換を与える
(i.6)A.'abcd' abcd abdc acbd acdb adbc adcb 最初から6通りの配列が得られる。 | |
C.
Cycle direct C. Y |
並べ変えの指標を与える
C. 1 2 0 4 3 +-----+---+ |2 0 1|4 3| +-----+---+ /: 1 2 0 4 3 2 0 1 4 3 1 2 0 4 3 C. 'abcde' bcaed 'abcde'/:/:1 2 0 4 3 bcaed |
Permute
X C. Y |
Xで与えた指標に従って、Yを並べ変える。
1 2 0 4 3 C.10 11 12 13 14 11 12 10 14 13 1 2 0 4 3{10 11 12 13 14 11 12 10 14 13 10 11 12 13 14/:/:1 2 0 4 3 11 12 10 14 13 |