一応、HSPも進化してます。
サブルーチンしか設定出来なかった昔のバージョンから、モジュールを空間を
わけたり、その中で拡張命令を記述できるようになり、最新バージョン(HSP3から
かな?)では、関数定義も出来るようになってます。
この関数定義というのは大きくて、コレが出来ないが為にいろいろと面倒なこと
が多かったんですが、かなりこれで楽になりました。
というか……出来れば関数を導入した時に、関数表記に統一したほうが簡単じゃ
なかったかなぁ、と思うのは私が関数表記に慣れたからでしょうかねぇ。
HSPにお馴染みの無い人にちょっと言うと、HSPではもともと、
command p0, p1, p2, ...
……のように書くのが基本でした。
戻り値を必要とする「いわゆる関数」については、p0に収納される、という
スタイルでした。
で、2.xの途中から
p0 = func(p1, p2, ...)
のようなスタイル(関数、と呼んでいる)を導入。
最初は組み込みオンリーでしたが、最近では#defcfuncキーワードで関数定義で
書けるようになりました。
戻り値を第一パラメータに入れる命令は全関数型にすればいいのに、とか思った
りしたのですが、どうやら関数型を導入したのは式の途中で使いたいものだけ、
という限定的なところで始まったようで、あんまり積極的には入れたくなかった
みたいですね。
というわけで、現在のHSPのスクリプト文法は結構複雑になっています。
この状況は「かんたん環境」が売りのHSPにとっては結構マズいのでは、とか
思うんですが、どうなんでしょうねぇ?
ちなみに私は、ECMAScriptっぽいスクリプトからHSPの実行ファイルにコンパイル
するパーサ&コンパイラを考えるってのが前向きかなぁ、と思うんですけどね。
/機械伯爵/