あくまでも全置換の直後の r に置換した数が格納されるということしか分かりません。途中の戻り値については,ちょっと保証できないです。実験上は一定の値が示されているようにも思いますが,どこにも記述は見つからないので,断言はできません。
なお,戻り値(r)と内部レジスタは混同されやすいのですが,条件分岐で参照されるのは内部レジスタであって r ではありません。
また,「?」は内部レジスタを反転(論理NOT)しつつ,内部レジスタが偽(0)だった場合は次の1命令または1ブロックをスキップするという働きをするキーワードです。
内部レジスタに値が格納されるのは(式)で評価した場合であり,rは直接関係ありません。
例えば,(r==0) ? { A } ? { B } という構文であれば,rが0のときに条件式は真なのでブロックAが実行され,ブロックBはスキップされます。
大事なことなので二度言います。
戻り値(r)と内部レジスタを混同しないようにしましょう。
ちなみに,コールしたマクロから戻る時に,終了時の内部レジスタをrに格納して呼出し元に戻るという機能があるので,そのへんがさらに混乱を誘うのかもしれません。逆に言うと,サブルーチンの戻り値に規則性を持たせる記述ができるわけです。このこともセットで覚えておくとよいと思います。
関連記事一覧ツリー
(▼ を押すとツリー全体を一括表示します)
-
▼ - 5731.N88-BASICのRENUMのようなマクロ - としき 25/03/29-14:22
返信フォーム
(この記事に返信する場合は下記フォームから投稿して下さい)