| 用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
|
* Signum 符号 * Y | \[\times \] |
実数に対しては、正には1、0には0、負には_1を付与。
* _5 0 4
_1 0 1
複素数では大きさと偏角を与える
* 3j4
0.6j0.8
*. 3j4
5 0.927295
*. 0.6j0.8
1 0.927295
複素数に対しては、大きさが1で、同じ偏角の複素数
|
Times
乗算 X * Y | |
|
(Halve)
|
-:
Match 一致 X -: Y |
左引数と右引数とがマッチ
していれば1、そうでなけ
れば0
1 2 3 -: 1 2 3 1 y;(y=y);y -: y=. i.3 3 +-----+-----+-+ |0 1 2|1 1 1|1| |3 4 5|1 1 1| | |6 7 8|1 1 1| | +-----+-----+-+ 'japan' -: 'japan' 1 'japan as '-:'japan is' 0 文字列は文ベースで一致 | ||
~. (副詞) Nub 重複排除 |
Yの重複要素を排除
~. 1 1 2 2 3 3
1 2 3
~. 'japan'
japn
| 無し | ||
~: Nubsieve 重複指示 ~: |
重複している合は重複の最初の箇所を1で示す。
(2度目は0)重複していない場合も1であり、オリジナル か重複かを表示
~:1 1 2 2 3 3
1 0 1 0 1 0
~: 'japan'
1 1 1 0 1
~: s:'山田';'田中';'山本';'田中';'山田'
1 1 1 0 0
|
Not-equal
不等 X ~: Y |
XとYが等しければ0、
そうでなければ1 20 30 40 ~: 40 30 20 1 0 1 'japan' ~: 'jappn' 0 0 0 1 0 文字ベース | |
|
=
Self Classify 自己分類 = Y | . |
重複を分類して判別し、1で
重複、0で非重複を表示する
= 'aabbccaadd' a |1 1 0 0 0 0 1 1 0 0 b |0 0 1 1 0 0 0 0 0 0 c |0 0 0 0 1 1 0 0 0 0 d |0 0 0 0 0 0 0 0 1 1 a=.3 3$'abcdefghi' (=a); a +-----+---+ |1 0 0|abc| |0 1 0|def| |0 0 1|ghi| +-----+---+マトリクスは行ベースで照合
= i.3
1 0 0
0 1 0
0 0 1
3 3 $ の単位行列を生成
|
Equal
等しい X = Y |
XとYが等しければ1、
そうでなければ0 20 30 40 = 40 30 20 0 1 0 (i.3 3 )=i.3 3 1 1 1 1 1 1 1 1 1 マトリクスはスカラベースで照合 a=: 3 3 $ 'abcdefghi' a=a 1 1 1 1 1 1 1 1 1 文字ベース |
|
E.
無し |
Memder-of
Interval
パターンの 所属 X E.Y |
右引数の中に左引数(パターン)
の先頭の位置に1を返す。そう
でなければ0を返す。
2 3 E. 1 2 3 5 2 3 5 0 1 0 0 1 0 0 patarn 2 3の始まる位置 2 3 4 E. 1 2 3 5 2 3 5 0 0 0 0 0 0 0 patarn 2 3 4はない 'co' E. 'cocoa' 1 0 1 0 0ワードベースであり、mがキーワード | ||
|
e.
Raze (in) 部分所属 e. Y |
Yの各要素を照合して
ブール数で表示する。
(e.i.5); e. 'japan' +---------+---------+ 0|1 0 0 0 0|1 0 0 0 0|j 1|0 1 0 0 0|0 1 0 1 0|a 2|0 0 1 0 0|0 0 1 0 0|p 3|0 0 0 1 0|0 1 0 1 0|a 4|0 0 0 0 1|0 0 0 0 1|n +---------+---------+ 0 1 2 3 4 j a p a n |
Member(in)
要素の所属 X e. Y |
左引数の要素が右引数の中
に含まれていれば1、 そう でなければ0を返す 8 7 6 7 9 e. 7 8 9 7 1 1 0 1 1 'japan korea' e. 'japan' 1 1 1 1 1 0 0 0 0 0 1 文字ベースで照合 | |
|
i.
(Integ ers) | \[\iota \] |
(i. >./)9 8 7 6 7 9 0 最大値の最初の位置 |
Index of
First
インデクス X i.Y |
左引数の要素の右引数にお
ける最初の位置を返す。
7 8 9 7 i. 8 7 6 7 9 1 0 4 0 2 'abcd' i. 'a bird' 0 4 1 4 4 3 a b i r d |
| i: |
(i:>./) 9 8 7 6 7 9 5 最大値の最後の位置 |
Index of
Last
インデクス X i: Y |
左引数の要素の右引数にお
ける最後の位置を返す。
7 8 9 7 i: 8 7 6 7 9 1 3 4 3 2 'japan' i. 'japan' 0 1 2 1 4 aは1番目 'japan' i: 'japan' 0 3 2 3 4 aの後ろの位置 3 | |
|
I.
Indices 指標 I. Y |
指標1の箇所の(i.# A)の数字(アドレス)を示す A=: 0 0 1 0 1 0 1 1 I. A 2 4 6 7 A,: i.8 0 0 1 0 1 0 1 1 0 1 2 3 4 5 6 7 |
Interval-
Index
X I. Y |
左引数で示した昇順または降順に
右引数を配置する順を示す
2 5 6 I. 10 3 5 7 8 9
3 1 1 3 3 3
(応用)
(/:~ Y),:~ Y=. ?. 7$20
6 15 19 12 14 19 0
0 6 12 14 15 19 19 NB.sort
19 ([: I. =) ?.7$20
2 5
19の位置
12より大きい数の位置を示す
12 I.@:< ?. 10$20
1 2 4 5 7 9
| |
|
<
(Box) < Y |
2 3 4
0
|
Less-than
X < Y |
左引数が右引数より小さけ1、そうでなければ0
20 30 40 < 40 30 20
1 0 0
| |
|
>
(Open) > Y | > |
>\2 3 4 2 0 0 2 3 0 2 3 4 |
Larger-
than
大きい X > Y |
左引数が右引数より大きけ
れば1、 そうでなければ0 20 30 40 > 40 30 20 0 0 1 |
|
<:
Decrement | \[ \le \] |
\[ \leq \] (<:) Y-1
Not(-.) 1-Y |
<:
Lesser or equal 小さいか 等しい X <: Y |
左引数が右引数より小さい
か等しければ1
そうでな ければ0 20 30 40 <: 40 30 20 1 1 0 |
|
Increment
>: | \[\geq \] | Increment \[Y+1 \] |
>:
Larger or equal 大きいか 等しい X >: Y |
左引数が右引数より大きい
か等しければ1 そうでな ければ0 20 30 40 >: 40 30 20 0 1 1 |
| 用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
|
*.
Length /Angle |
論理積
And 最小公倍数 LCM X *. Y |
左右の引数が共に1のとき
に1 そうでなければ0 0 0 1 1 *. 0 1 0 1 0 0 0 1XとYの最小公倍数 24 *. 60 120ブール代数で文字列は演算できない | ||
|
+.
Real /Imagin ary |
Or
論理和 GCD 最大公約数 X +. Y |
左右の引数が共に0のとき
に0、そうでなければ1
0 0 1 1 +. 0 1 0 1 0 1 1 1XとYの最大公約数 24 +. 60 12 | ||
|
*:
Square |
Not-And
否定論理積 X *: Y |
左右の引数が共に1のとき
に0、そうでなければ1
0 0 1 1 *: 0 1 0 1 1 1 1 0 | ||
|
+:
Double |
Not-Or
否定論理和 X +: Y |
左右の引数が共に0のとき
に1、そうでなければ0
0 0 1 1 +: 0 1 0 1 1 0 0 0 | ||
| = |
=
XNOR |
左右の引数が同じとき
に1、異なければ0
XNOR(eXclusive NOR)
0 0 1 1 = 0 1 0 1 1 0 0 1 'JAPLA'='JPALA' 1 0 0 1 1 | ||
|
-.
Not 否定 /補数 -. Y |
右引数が0なら1、1なら0
-. 1 0
0 1
-. 0.6 0.7
0.4 0.3
補数
|
Less
X -.Y |
左の引数から右引数の要素
を除いたものを出力する
(i.5) -. 1 3 0 2 4 (i.5)(-.@e.#[)1 3 0 2 4 'JAPLA' -.'JP' ALA (Remove Items) |
| 用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
|
#.
Base-2 2進数 #. Y |
2進数で与えた右引数を
10進数に変換する
#. 1 1 1 1
15
2 #. 1 1 1 1
15
|
Base
10進化 |
左引数を底(10進)とする加重合計値
10 #. 1 2 3 123 60 #. 1 30 20 5420 (1時間30分20秒の秒数) (2;4;8;16) #./(L:0) 4 5 6 +--+--+---+----+ |32|90|302|1110|10進の値 +--+--+---+----+ 2 4 8 16 進数32 \[(4 \times 2^{2})+(5 \times 2)+6=32 \] \[(4 \times 8^{2})+(5 \times 8)+6=302 \] | |
|
#:
Antibase 2 10進数の 2進化 #: Y |
10進数で与えた右引数を
2進数に変換する
#: i.8
0 0 0 ‥‥‥ 0
0 0 1 ‥‥‥ 1
0 1 0 ‥‥‥ 2
0 1 1 ‥‥‥ 3
1 0 0 ‥‥‥ 4
1 0 1 ‥‥‥ 5
1 1 0 ‥‥‥ 6
1 1 1 ‥‥‥ 7
|
Antibase
n進化 X \#: Y |
10進数で与えた右引数を
左引数の底による進数で表示
24 60 60 #: 5420 1 30 20 (秒の時間/分/秒へ変換) 4 4 #: i.6 0 0 0 1 0 2 0 3 1 0 1 1 (4進数表示) | |
|
b.
(副詞) Basic Characteristic u b.n |
|
Boolean
ブール数 ビットワイズ演算 X b. Y |
ブール数での演算。
(0 1 *./ 0 1);0 1 +:/ 0 1
+---+---+
|0 0|1 0|
|0 1|0 0|
+---+---+
<("2) |: 0 1 (1 8 b./) 0 1
+---+---+
|0 0|1 0|
|0 1|0 0|
+---+---+
引数は(0-15),(_16-_1),(16-34)が割り付けられており、
プリミティブの代わりに引数とb.でbitwise演算ができる
\[
\begin{array}{cc|cc}
1 &*&6&~:\\.
8 &+:&9& =\\
12&-.&14&*:\\
\end{array}
\]
20 b./~ table i.5 NB. bitwise less than(<) +-------+---------+ |20 b./~|0 1 2 3 4| +-------+---------+ |0 |0 1 2 3 4| |1 |0 0 2 2 4| |2 |0 1 0 1 4| |3 |0 0 0 0 4| |4 |0 1 2 3 0| +-------+---------+Vocabraly参照 |