| 用法 | 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
|