作者: 機械伯爵
日時: 2009/3/25(09:43)
 一応、HSPも進化してます。

 サブルーチンしか設定出来なかった昔のバージョンから、モジュールを空間を
わけたり、その中で拡張命令を記述できるようになり、最新バージョン(HSP3から
かな?)では、関数定義も出来るようになってます。

 この関数定義というのは大きくて、コレが出来ないが為にいろいろと面倒なこと
が多かったんですが、かなりこれで楽になりました。

 というか……出来れば関数を導入した時に、関数表記に統一したほうが簡単じゃ
なかったかなぁ、と思うのは私が関数表記に慣れたからでしょうかねぇ。

 HSPにお馴染みの無い人にちょっと言うと、HSPではもともと、

    command p0, p1, p2, ...

 ……のように書くのが基本でした。

 戻り値を必要とする「いわゆる関数」については、p0に収納される、という
スタイルでした。

 で、2.xの途中から

    p0 = func(p1, p2, ...)

 のようなスタイル(関数、と呼んでいる)を導入。

 最初は組み込みオンリーでしたが、最近では#defcfuncキーワードで関数定義で
書けるようになりました。

 戻り値を第一パラメータに入れる命令は全関数型にすればいいのに、とか思った
りしたのですが、どうやら関数型を導入したのは式の途中で使いたいものだけ、
という限定的なところで始まったようで、あんまり積極的には入れたくなかった
みたいですね。

 というわけで、現在のHSPのスクリプト文法は結構複雑になっています。

 この状況は「かんたん環境」が売りのHSPにとっては結構マズいのでは、とか
思うんですが、どうなんでしょうねぇ?

 ちなみに私は、ECMAScriptっぽいスクリプトからHSPの実行ファイルにコンパイル
するパーサ&コンパイラを考えるってのが前向きかなぁ、と思うんですけどね。

 /機械伯爵/