APL/J言語:ボキャブラリー

単語のリストを覚えるのは効率的な言語の学び方ではありません。よりよい方法を使うべきです。


A)あなたに話させてくれるネイティブスピーカーと会話する。
B)その言語で書かれていて読んでおもしろいものを読む。
C)辞書の使い方と文法を学び、先生なしで独立できるようにする。
D)興味ある主題で自分で書いてみる。
E)単語の構造に注目し、知っている単語から知らない単語の意味を類推できるようにする。プログラムはテレ(遠くの)グラムと関係あり、テレグラムはテレフォンと関係ある。小さい単語も情報豊かな構造をもっている。アトムは分解できないという意味で、ア(notの意味)とtom(tomeとかmicrotomeのtom)から出来ている。


J言語の場合:

A)コンピュータが正確で広範囲な会話をしてくれる。
B)「フラクタル、映像化とJ言語」、「数学を探求する」、「数学コンパニオン」などいろいろなトピックが提供されている。
C)完全かつコンサイスな辞書と文法を提供するJディクショナリーが付属している。
D)Jフレーズがプログラムを書くガイダンスを提供し、ほとんどどんなトピックからでもさまざまな難易度の課題に挑戦できる。
E)単語はかなりの構造をもっていて、たとえば+:(プラスコロン)、-:(マイナスコロン)、*:(アスタリスクコロン)、%:(パーセントコロン)はダブル(倍にする)、ハーヴ(半分にする)、スクエア(二乗する)、スクエアルート(自乗根を求める)という意味である。さらに初心者はすべてのもとの言葉に意味のある名称(ニーモニック)をアサインすることができる。たとえばsqrt=:%:とかentier=:<.(フランス語である)とか、sin=:1&o.とかSIN=:1&0.@(%&180@o.)(度数表示のときの三角関数のサイン)できる。

読者がコンピュータで試行錯誤したりJディクショナリーを見て意味を確認できる、または自分で意味を推定できるという前提で、今後新たに原始関数(動詞)を紹介する際、もう詳しい説明はとくに加えないこととします。たとえばo.という動詞は形から円に関する動詞だということが推定され、二項動詞的に使われて三角関数のサインであり、単項動詞的に使われるとパイの倍数(円の直径に作用させれば円周)である。
口頭で正しく伝えるにはシンボルの名称もしくは略称を使うのがよいでしょう。


<(左アングル,小なり記号)
/(スラッシュ)
&(アンド、アンパーサンド)
%(パーセント)
[(左ブラケット、左各カッコ)
\(バックスラッシュ、円マーク)
@(アトマーク、アトップ)
;(セミコロン)
{(左波かっこ、左ブレイス)
|(スタイル、たてぼう、パイプ)
^(キャレット、カレット、やまじるし)
~(チルダ、なみなみ)
((左かっこ)
_(アンダーバー)
`(バッククオート、グラーヴ)
*(ほしじるし、アスタリスク)


演習:
9.1 演習7.1のプログラムMAPについて、<.(小なりドット、最小値)の部分を|(たてぼう、パイプ、剰余を算出する二項動詞)を用いて書き換え、M=:map@(6&|)として、結果をMAPと比較せよ。

   M=:map@(6&|)
   M i.10
 +-* %#+-*  NB.6の剰余なので7番目の$が使われず繰り返す


9.2 本章で定義されたsinとSINを使ってみる。

   sin=:1&o.
   SIN=:1&o.@(%&180@o.)
   sin 0
0
   sin 3.14 % 2
1
   SIN 0
0
   SIN 90
1
   SIN 45
0.707107
   sin 3.14 % 4
0.706825


9.3 Jボキャブラリーに掲載されている原始関数(動詞)を用いてプログラムしてみよ。

9.4 演習2.2で作成した表をアップデートせよ。

以上