recursion(再帰)

何度も繰り返し販売できる自動販売機は再帰を用いて次のように記述できる。

VMR = coin -> juice -> VMR

プロセスVMRはイベント coin,juice の後、再び自身VMRに移っている。VMRはcoin,juice,coin,juice,・・・を繰り返すプロセスである。

また、VMRは次のように書いても同じプロセスとなる。*1

VMR = coin -> juice -> coin -> juice -> VMR

また、プロセスは添え字(変数)を含んで定義することもできる。
例えば、ジュース残数を n で保持したい場合は次のように書ける。

VMCNT(n) = coin -> juice -> VMCNT(n-1)
VMR = VMCNT(10)

VMRは VMCNT(n) の n の値を10としたプロセスとして定義している。イベントcoin,juice が起きる毎に VMR は VMCNT(10),VMCNT(9),VMCNT(8)・・・と変化していく。

*1:”2つのプロセスが等しい”という定義は後述する。