J言語とAPL


J言語すごい。
数学が趣味の人は全員やるべきですね。
数学が趣味でなくても数学がわかるようになりたい人はやるべきですね。
J言語は難しいと思い勝ちですが、実際に難しいのは数学であって、言語ではありません。

たとえば二分の一と三分の一を足すと通分して六分の五になりますが、これをJ言語では以下のように書きます。

   1r2 + 1r3
5r6

解説:最初に3文字分インデントされているのがプロンプトで、そこに1r2 + 1r3とタイプしてEnterを押すと、5r6と出ます。1r2が二分の一で1r3が三分の一です。+はふつうの足し算です。
これを別に難しくないと感じるのは分数をわかっているからであって、これが複素数になっても同じなのに難しく感じる。難しいのは複素数が難しいからであって、J言語が難しいからではない。

   1j2 * 2j3
_4j7

解説:複素数虚数部分をjの後に書きます。虚数の掛け算はマイナスになりますので、この計算は実数部分は1*2 - 2*3 = -4 => J言語では_4とマイナスをアンダーバーで表記します。虚数部分は1*3 + 2*2 = 7。この結果_4j7が答え。

J言語はAPLから発展したもので、APLとの違いは特にAPL独特の記号類を使わず、ASCII記号だけで記述できることで、そうすると現代Unicodeの時代なのでもとのAPLを使えばいいじゃないかと思い勝ちであるが、さすがあとからできてるのでJがいいとおもう。
まだ一人前のことを言える立場ではありませんが、APLと比べてなぜJ言語がいいかというと、

1.文字列の扱いがいい=>日本語処理につながる
2.配列とボックスのあたりの処理が整理されている
3.無料でWindows Mobileを含む環境と膨大なドキュメントが用意されている

以上