2003lk入門

トップに戻る

をクリックすると非真理設定が非表示になります。ページを再読み込みすると戻ります。


ksi.2 基礎的な命令

lexn.2 [住所箱](setistafar)の操作

個数が少なく直接名前で指定できる[メモ](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

となるのです。

f0f0@で意味が大きく異なることに細心の注意を払ってください。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では数値に@を付けるという機能そのものを搭載していないのです。


前のページへ   次のページへ