→をクリックすると非真理設定が非表示になります。ページを再読み込みすると戻ります。
個数が少なく直接名前で指定できる[メモ](firjal)と異なり、[住所箱](setistafar)の操作には、名前通り[アドレス](setival)を使います。例えば、3529356308という場所に住んでいる[住所箱](setistafar)から値を取ってきてf1
に複製するには、次のように書きます。
kRz 3529356308 f0 kRz f0@ f1
@
が[〜という場所で](io)の略字であることは皆さんご存知かと思われますが、注:リパーシェのiとoをくっつけた合字があり、それのASCII代替表示として@
を用いる。詳しくは「初学者のためのリパライン語」を参照すること。まさにf0
という[メモ](firjal)に書いている住所[〜という場所で](io)情報を読んでくる、という意味になるのです。
少し分かりにくい箇所なので、図で追いかけていきましょう。まず、最初のkRz 3529356308 f0
の結果、firjalはこうなります。
3529356308 | ? | ? | ? | ? | ? |
f0 | f1 | f2 | f3 | f5 | xx |
その次のkRz f0@ f1
では、f0
という[メモ](firjal)に書いている住所[〜という場所で](io)情報を読んでくるので、住所箱が下のようになっているとき、
56593777 | 3 | 2718972307 | 3157158970 |
3529356304番地 | 3529356308番地 | 3529356312番地 | 3529356316番地 |
読んでくるべき値は3529356308番地に置いてある「3」です。これがf1
に複製され、firjalは
3529356308 | 3 | ? | ? | ? | ? |
f0 | f1 | f2 | f3 | f5 | xx |
となるのです。
f0
とf0@
で意味が大きく異なることに細心の注意を払ってください。f0
は[メモ](firjal)ですがf0@
は[住所箱](setistafar)です。f0
を操作しているときは一時的な[メモ](firjal)の操作に過ぎませんが、f0@
の操作は[住所箱](setistafar)の操作であって、一歩間違えれば[住所箱](setistafar)に保管されているデータをどんどん破壊していってしまうかもしれないことを肝に銘じておきましょう。
さらに言えば、単独で次のように書いた場合、
kRz f1 f0@
これはf1
の値を[住所箱](setistafar)のどこに書き込んでいるのでしょうか?もうお分かりですね、「分からない」のです。住所であるf0
に何が入っているのか完全に不明で、どこか得体の知れない場所に書き込んでいるのです。これはとても危険なので、決してやってはいけません。
ちなみに、先程の
kRz 3529356308 f0 kRz f0@ f1
では3529356308という場所を見に行くために一時的にf0
を使っていますが、なぜ
kRz 3529356308@ f1
とは書かないのでしょう?
実は、今後実践していくとだんだん分かってくるように、住所を指定する際に直接数値を書いて場所を指定することは意外に少なく、住所は[メモ](firjal)に書いていることが圧倒的に多いのです。ですから、2003lkでは数値に@
を付けるという機能そのものを搭載していないのです。