構想ノート3:華和梨の仕様案あれこれ†set系コマンドで複数値を格納†一時エントリ等で、たまに複数の値を一気にエントリに設定したい場合がある。 この場合、従来はこう書く。
しかし、これは気持ちとしては一気に書きたい。例えば次のように。
set系コマンドが初めからそうでもよかったが、歴史的事情からそうなってない。 今からset/setstrをこの動作にするのは、混乱をきたすので別命令で実装が妥当。 エントリ呼び出し時に引数指定†現在の実装では、ユーザ定義コマンドの実体は「引数を与えて呼べるエントリ」である。 これと同様に、通常のエントリを引数を与えて呼べてもいいのではないか。 里々のcallと同じこと。
Phase 8の実装案の一つとして、関数自体をエントリ化*1の案もあった。 この「関数自体をエントリ化」は、言語仕様としてはシンプルかつ拡張性もよいが、後方互換の観点で見送られたように記憶している。 だが、この「エントリを引数付きで呼ぶ」が可能だと、C言語等で言う所の関数テーブルの実装が素直になるなど、一定のメリットが今でもあると考える。 さとー個人の意見として、「グローバルエントリ名空間を汚す」という理由で実装を見送っているlambdaコマンド(無名関数)を、「一時エントリへ無名関数を格納」という形で実質的に回避出来るのではないかと思っている。とはいえ、要検討。 |