大きなプロジクトの場合はロケールやcoclassで区分けして整理する。
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
=. =: | \[ \rightarrow \] |
Copula
(is) 連結詞 (名詞) X =. Y X =: Y |
plus=: + pm=: +,- 'A B C'=: 123 256 768 | |
[(])
Same 同等 (名詞) |
定義内容を表示させる。 ] n=.i.2 3 0 1 2 3 4 5 |
Left
/Right
右引用 左引用 |
[は左引数を取り出す ]は右引数を取り出す 2 3 [ 4 5 2 3 2 3 ] 4 5 4 5 | |
:
Monad /Dyad 単項/二項 (接続詞) |
「(単項):(二項)」の形で定
義し、
左引数の有無によって 単項又は二項として演算する log=.10&^. : ^. log 10 100 1 2 8 log 10 100 1.10731 2.21462 | |||
NB.
Comment コメント |
コメント mean=.+/%# NB.mean mean 1 2 3 4 5 3 NB. その行の以降の文字は演算に関係しない | |||
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
b.
Basic Charac terristics (動詞) u b .n |
| Boolean | ||
f.
無し |
Fix
動詞の固定 (副詞) |
動詞の定義を固定し、その
後の変更の影響を排除する
sum=. +/ mean1=. sum % # mean=. mean1 f. mean >:i.5 3 sum=. -/ mean1 >:i.5 0.6 mean >:i.5 3 後のsumの変更でもmeanは不変 | ||
!. |
Fit
Customize フィット カス トマイズ (接続詞) |
許容誤差 (^!._1)~ i.5 1 1 2 6 24 ([:*/]+_1:*i.)"0 i.5 1 1 2 6 24 (^!.1)~ i.5 1 1 6 60 840 ([:*/]+i.)"0 i.5 1 1 6 60 840 !.で指定した数値や文字列を挿入する 1 0 1 1 0 1 1#^:_1(!.100)]i.5 0 100 1 2 100 3 4 3j1 0 2 0 3 # !.'*' 'JAPLA' JJJ*PPAAA 5^!.0.1 ] 4 702.78 */ 5.0 5.1 5.2 5.3 702.78 stope 海岸段丘 | ||
:.
無し |
Obverse
オブバース 逆定義 (接続詞) |
逆定義が正しく定義されたか どうかを確かめる。 f=.*: :. %: g=.*: :. +: f i.5 0 1 4 9 16 NB. x^2 g i.5 0 1 4 9 16 先の動詞だけが実行される f ^:_1 f i.5 NB. OK 0 1 2 3 4 逆関数が正しく定義されてい れば右引数の値を返す。 g ^:_1 g i.5 0 2 8 18 32 「+: *: y」の演算結果で正 しく定義されていない。 | ||
無し |
Even
(接続詞) u .. v |
2つの動詞を接続して1つの動詞になる。
「-:@(u+u&v)」と同じ (*: ; *:&+:) 4 +--+--+ |16|64| +--+--+ -:@(*:+*:&+:)4 40 *: ..+: 4 40 1 2 3 4 5&p. 2 _2 129 64 1 2 3 4 5&p. ..- 2 93 1 0 3 0 5&p. 2 93 | ||
Odd
(接続詞) u .: v |
2つの動詞を接続して1つ
の動詞になる。
「-:@(u-u&v)」と同じ -:@(*:-*:&+:)4 _24 *: .:+: 4 _24 | |||
":
Default Format デフォルト 書式 ": Y |
数値で与えた右引数を文字化
する。
]y=.":i.2 5 0 1 2 3 4 5 6 7 8 9 $ y 2 9 文字化されている! |
Format
書式 X ": Y |
書式を整え文字化して表示
整数部で全体の桁数、小数
部で小数以下の桁数を示す
(Ver 6以降) 6.2から6j2に変更 (互換無し) 6j2 ": 1 2 3 %3 0.33 0.67 1.00 3j2 ": 1 2 3 %3 ********* スペースが足りないと表示せず | |
".
Do
実行 ". Y |
文字列で与えた右引数を数値
化して実行する。
a=.'3+4+5' ". a 12CSVファイルで読み込んだデータはBOXに入った文字なので開いて数値化する。 ".@> DATA |
Numbers
X ". Y |
Yを数値化したときに欠け
た部分をXで補う。
y=.'1 2 3','4 5',:'' 10 ". y 1 2 3 4 5 10 10 10 10 | |
Jで推奨されている
用法 | APL | 結果と例(単項) | 用法 | 結果と例(両項) |
a.
Alphabet アルファ ベット |
アルファベットなどの256の
キャラクターを表示する。
]s=.a.i.'aA' 97 65 a,Aの位置を検出している。 (s+/i.26){a. abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | |||
a:
Ace (名詞) |
空のボックスのリスト | |||
;:
Word 単語 ;: Y |
単語を識別
;: ' ABC xyz' +---+---+ |ABC|xyz| +---+---+ > ;: 'ABC xyz' ABC xyz |.&. s: ' ABC xyz' +---+---+ |xyz|ABC| +---+---+a.を併用して数字、Space、文字、NB.等を 識別できる(複雑)Vocabraly参照 |
sequential
Machine
m ;:Y |
0-5の引数と右に複雑な引数を付加した文字列処理。
Vocabralyにquote(')による文の区切りや途中の抜きなどの事例あり (複雑) | |
s:
symbol |
文字ではなく単語を区分し認識させる
a=. ' hand in hand' (最初に1スペース空ける) s: a `hand `in `hand |. s: a `hand `in `hand |. a dnah ni dnah 文字列に多くの関数が適用できる /:~ s: a `hand `hand `in A=.s:' 大久保 中野 高円寺 荻窪' ,.A `大久保 `中野 `高円寺 `荻窪 |. A `荻窪 `高円寺 `中野 `大久保先頭にスペースを入れる。単語の区切りは半角で。(全角でも よさそうだ。単語の前に(`)が入れば良い) |
s:
symbol |
文字列の演算のため 多くのパラメータが用意されている 5 s: s: a +----+--+----+ |hand|in|hand| +----+--+----+ ;: a +----+--+----+ |hand|in|hand| +----+--+----+ | |
u:
Unicode |
JのVer5からUnicodeが利用できる(U8)
(u:を用いなくとも普通にUnicodeは利用できる) u: 'JAPLA' JAPLA 3!:0 u: A 131072 131072が出ればnicode | u: |
パラメータは1-8まである。
1,2/8bittのchar,wcharの高位置を改変
6,7,8/wchar ASCII U8の変換
(Fontによる差異あり)
3&u: 'JAPLAjapla' 74 65 80 76 65 106 97 112 108 97 a.での文字の位置を示す |