今新しい言語を作ってます
■ このスレッドは過去ログ倉庫に格納されています
0343327
NGNG現時点では、前のメッセージが送信し終わった後か、レシーバから要求があった時に評価されます
前者は、関数そのものの起動、後者は、関数に対する引数として使う方法ですが、
関数自体は引数評価前に起動する点が、一般の言語と違います
ちなみに次のメッセージを評価し返す命令は >>334 の System NextMsg です
メソッド -> は、『無条件で次の語が Self のニックネームである』ということをシステムに通知します
通知の直前では Bar は未評価のため、システムは変数 Bar を評価することなく、オブジェクトを代入することができます
もちろん、その後に Bar は (通常の引数処理とは違う意味で) 評価されたことになりますが
ということで 342 さんの意見も取り入れて、文全体の構成を改めて見直してみると
1) 無条件でレシーバに設定される、文頭のリテラルor変数
2) メッセージセレクタを通り、関数起動に使われるメッセージ文字列
3) 関数の引数として、関数から取得要求されるリテラルor変数orメッセージ
ということが判ったので、1 は変数を展開する、2 は展開しない、3 はレシーバ側で判断という方向性で
■ このスレッドは過去ログ倉庫に格納されています