π計算でリスト
あえて教科書とかを見ないでやってみる.
agent Constant1(x,a) = 'x<a>.Constant1(x,a) agent Constant2(x,a,b) = 'x<a,b>.Constant2(x,a,b) agent Cons(cons) = cons(r,hd,tl).(Cons(cons) | Constant2(r,hd,tl)) agent Head(head) = head(r,list).list(hd,tl).(Head(head) | Constant1(r,hd)) agent Tail(tail) = tail(r,list).list(hd,tl).(Tail(tail) | Constant1(r,tl))
Constant1 と Constant2 は,x に値を送信し続けるプロセスで,これで定数を表現できる気がする.純粋関数型的.
こういうのを書いてると,非常に型がほしくなるなぁ.