APL/J言語:J言語の特徴

Jディクショナリー(Roger K. W. Hui, Kenneth E. Iverson)
のイントロにJ言語の特徴として7項目挙げてあります。

わたしはまだ勉強始めたばかりですが、この7項目に非常に納得が行ったので、書き留めておきます。


1.原始関数(primitives)は1文字か2文字からなるニーモニックである
2.関数に実行順位はない(掛け算も足し算も同等に扱い、右から実行)
3.たとえば-(マイナス記号)は右側だけに引数をとる単項動詞としては引数のマイナス化(negation)の意味になり、両側に引数を取る二項動詞としては左側の引数から右側の引数を引いた数を返すように、見かけが同じ関数を単項と二項で違う用途につかうことがシステム化されている
4.関数を動詞と読んだり、関数を変化させる記号を副詞と呼ぶように自然言語の概念を用いた文法体型
5.副詞や接続詞を用いることにより、少ない動詞で多彩なオペレーションを可能にしている。例:+/aはaというリストの合計となり、*/aはaというリストの要素をすべて掛け合わせたもの(プロダクト)である。さらにa*/bはaというリストとbというリストの掛け算テーブルとなる。
6.ベクトル(リストのこと)と、マトリックス(行列、テーブル)、その他配列(array,多次元配列)が同等に一つの変数で処理できる等、統一的な処理が可能
7.関数プログラミングもしくは非明示的(tacit)プログラミングが可能で、変数を定義しないプログラミングができる。またそうしたプログラムに名前をつけることができる。例:sum=:*/として、sum aという使い方ができ、さらにmean=:sum % #として、mean aでリストaの要素の平均を得ることができる

以上