→をクリックすると非真理設定が非表示になります。ページを再読み込みすると戻ります。
前回の
(主処理その1) nta 4 f5 inj iumes xx f5@ ata 4 f5 (主処理その2) nta 4 f5 inj iumes xx f5@ ata 4 f5 (主処理その3) kRz lesback xx nll iumes kRz 0 f0 kRz 0 f1 kRz 0 f2 kRz 0 f3 kRz f5@ xx nll lesback fen
では、処理を終わらせるためだけにlesback
という場所を末尾に定義していました。しかし、これは不格好です。
そこで、「主処理も[指令](cersva)にすればよいのではなかろうか」という考えを採用してみましょう。kRz f5@ xx
と書けば[指令](cersva)を終わらせられるので、
(主処理その1) nta 4 f5 inj iumes xx f5@ ata 4 f5 (主処理その2) nta 4 f5 inj iumes xx f5@ ata 4 f5 (主処理その3) kRz f5@ xx nll iumes kRz 0 f0 kRz 0 f1 kRz 0 f2 kRz 0 f3 kRz f5@ xx
とすれば、lesback
という名前を廃止することができます。また、主処理そのものも[指令](cersva)にするというのは、統一感が出て綺麗です。
ということで、今後書くときには、必ず主処理を[指令](cersva)にしましょう。
実は、HaskellインタプリタもWebインタプリタも、主処理が[指令](cersva)になっていることを期待している。Webインタプリタで実験している人は最後にnx has an invalid address
などといった赤文字のエラーがこれまで出ていたと思うが、主処理の最後にkRz f5@ xx
とすることでこれが取り除けて正常に終了できる。
さて、今までの[指令](cersva)では毎回同じ処理を行っていましたが、微妙に異なる動作をさせたいといったときはどうすればよいでしょうか。
例えば、前回のiumes
は
nll iumes kRz 0 f0 kRz 0 f1 kRz 0 f2 kRz 0 f3 kRz f5@ xx
というものでしたが、「4つのfirjalに0を入れる」だけでなく「4つのfirjalに3を入れる」「4つのfirjalに758を入れる」「4つのfirjalの値に98423を入れる」なども同じ[指令](cersva)で行えるようにしたいとします。そのような[指令](cersva)であるvi'artes
を書くにはどうすればいいでしょうか。
これに対応するためにも、f5
を使います。
指令を出す側で、
nta 4 f5 inj vi'artes xx f5@ ata 4 f5
ではなく
nta 8 f5 inj vi'artes xx f5@ ata 8 f5
としてやると、f5
を余計に減らしているので、余剰の領域ができます。
状態1:
| ||||||||||||||
状態1の後でnta 4 f5 inj vi'artes xx f5@ :
| ||||||||||||||
状態1の後でnta 8 f5 inj vi'artes xx f5@ :
|
そこで、
nta 4 f5 kRz 98423 f5@ nta 4 f5 inj vi'artes xx f5@ ata 8 f5
とすると、この余剰領域を通じて[指令](cersva)を受け取る側に情報を送ることができます。
受け取る方では、
nll vi'artes kRz f5 f3 ata 4 f3 kRz f3@ f0 kRz f0 f1 kRz f0 f2 kRz f0 f3 kRz f5@ xx
としてやることで目的を達成できるのです。
この小技により、[指令](cersva)の応用範囲はさらに広まるのです。