APL 言語の特徴を挙げると
グラフィックス機能と数式処理機能はありませんが,ベクトルや行列の演 算に関しては十分 Mathematica の代わりになると思います.また,バイ ナリのサイズが小さいので,FD ベースで動かすような小規模システムで も使えると言う利点があります.
APL\11 にはまだバグがいたりするようですが,解説書の例題を試す程度 では一度もバグに当たりませんでした.結構安定しているのではないかと 思います.UNIX のキャラクター端末で動くようになってますので,特殊 なフォントは必要ありませんが,演算子に ^H (back space キー)が使わ れていたりするので,端末設定をちゃんとやらないと使えない演算子がで てきます (^^;)
PC への移植の可能性ですが,ポインターと整数をごっちゃに使っている 部分があるようで,ポインタと整数のビット長の違う CPU への移植は面 倒だと思います.SunOS と NEWS-OS でコンパイルした場合は,ちょっと した修正だけで済みました.ただ,コンパイル時にポインター回りで warning が大量に出ます.SGI の IRIX 6.3 では動作しませんでした.
あと,何故か行列式を計算する演算子が APL にはなかったので練習がて
ら作ってみましたので,それを付けておきます. APL の雰囲気だけです
が,味わっていただけるのではないでしょうか :-)
# もっと良い作り方があると思いますが (^^;)
## 任意の大きさの行列の行列式が計算できます.
--- r{det m;i;e;a;b }(2#RRm)/0,r{'array size error' }(#/Rm)/0,r{'dimension error' e{1YRm a{eR0 }(1=e)/0,r{m[1;1] i{1 loop: b{Ie b[1,i]{ i,1 a[i]{det 1 1Um[;b] }(e&i{i+1)/loop r{+/m[1;]XaXeR1-`1U0,eR2 ---その後,改良版を作りました :-)
--- r{det m;i;e;a;b }(2#RRm)/0,r{'array size error' }(#/Rm)/0,r{'dimension error' e{1YRm a{eR0 }(1=e)/0,r{m[1;1] i{1 b{Ie loop: b[1,i]{ b[i,1] a[i]{det 1 1Um[;b] }(e&i{i+1)/loop r{-/m[1;]Xa ---