→をクリックすると非真理設定が非表示になります。ページを再読み込みすると戻ります。
inj
f0
に入っている値をf1
に移し、f1
に元々入っていた値はf2
に移す、といった処理はどうやって書けばいいでしょうか?
簡単ですね。次のように書けばいいのです。
kRz f1 f2 kRz f0 f1
これを一つの命令にまとめた、inj
という命令があります。名称は[同時に移す](irzarst ileceonj)を略したもので、2回のkRz
を同時に行うことができます。
inj f0 f1 f2
これが特に便利なのは、値を交換したいときです。例えば、f0
に入っている値とf1@
に入っている値を交換したいとき、次のようには書けません。
kRz f0 f1@ kRz f1@ f0
順番を入れ替えて
kRz f0 f1@ kRz f1@ f0
としても、上手くいかないことに変わりはありません。
ということで、この場合はinj
の「同時に移す」という性質を使って、
inj f0 f1@ f0
と書くことで正しく交換できます。
なお、余談ですが、inj
が要求する3要素のうち2番目に[メモ](firjal)を使っていて、かつ3番目が[住所箱](setistafar)であるとき、2番目で使っている[メモ](firjal)を住所箱の番地を指すためにも使うと不具合を起こすことがあります。気をつけましょう。例えば、
inj f0@ f0 f0@
は2003lkとしては正しくなくて、f0
とf0@
を交換したい場合は
inj f0 f0@ f0
と記載する必要があります。