&bの鳴動時間が、引数に応じた厳密な値ではなく、結構アバウトだということは理解しています。なのでおそらく、私が理解できていないのは、入力側の変数のとりうる値とか何とか、そういう点なんだと思うのですが。
かつて、nifty:FGALDC/MES15/9376(1998/02/21)でH岡さんが、ニフティのログ読みマクロを発表されていました。これには、「&b(2-6*h)」というルーチンがついていました。
このマクロに対して、エラーだと倍の時間鳴動するような意味のコメントがついていました。おそらくこれ、hという変数が、発言の検索に成功したか失敗したかを表していると思うのですが、なぜそうなのかというのがよくわかりません。
私が何を勘違いしているのか、わかりやすく解説していただけると幸いです。
あ,わたしが付けてるコメントですね。(^-^;ワスレテル
> &b(2-6*h)
引数の演算結果は,まるで負の値になるように見えますが,
コマンド #r #c の戻り値は 0 か -1 なので,
検索結果が成功:戻り値rは0,→ h=r, → 2-6*0
失敗:戻り値は-1,→ h=r, → 2-(6*(-1)) → 2-(-6)
としきさんともあろう方が,この質問は不相応な気がしますが……
ん? あっ! 2-(-6) = 2+6
倍じゃない! (^o^; 4倍だった。
すみません,自己訂正します。ご指摘ありがとうございました。
それにしても,どうして昨夜も気付かなかったのだろう。。。
としきさんのことだから裏があるに違いないと思って,一晩寝かしたの正解。
-2+6 になったような気がしちゃったのですね。昔から惚けてたのか……。
> としきさんともあろう方が,この質問は不相応な気がしますが……
いや、本当にわかっていなかったというか、混乱していたのですよ。
> 検索結果が成功:戻り値rは0,→ h=r, → 2-6*0
> 失敗:戻り値は-1,→ h=r, → 2-(6*(-1)) → 2-(-6)
まず、検索の失敗・成功がhに入ってくるというところまでは合ってました。
が、次。
成功と失敗のどっちが0になるか、あるいは0でないときの値はマイナス1かプラス1か、という点の自信が失せていたのですね。もし仮にプラス1だとすると、&bの引数は符号付だとマイナスだけど、それが符号なしで解釈されるとえらく大きな数字になるし、でももしかしたらそれのせいで倍になるのか・・・という感じで、堂々巡りをしていたわけですよ。
で、わからないなら聞いてしまえ、と。
> としきさんのことだから裏があるに違いないと思って,一晩寝かしたの正解。
私、裏も表もある人間ですからね。腹は黒くないつもりですが。
どうもありがとうございました。
↑ このページの先頭