Concurrent Clean : 状態を表現するには?

私の感覚で言うと、新しいオブジェクトをその都度生成しているという認識はないですねぇ。
どちらかというと、こういう感じかな?
普通のオブジェクト指向言語を使っているときは、世界を抽象化したモデルをプログラムの中に作り上げて、それを直接あれこれ修正しているという感じで、
Clean(純粋関数指向言語)を使っているときは、世界はプログラムの外側にあって、プログラムの中には世界とつながったハンドルだけあって、そのハンドルを通じて世界にコマンドを送信しているという感じかな。
コマンドを送信するにはハンドルを添えて送信しなければならなくて、結果を受け取るときに次のハンドルが一緒に送られてきて、一度コマンドを送信するのにハンドルを使ってしまうと、そのハンドルは失効するので、常に新しいハンドルを受け渡していかないといけない。
なんとなく、ネットワーク越しに通信を行うプログラムを書いているような感じで世界にアクセスするような感じですね。

      • -

問題は、通信を行う向こう側(つまり世界)のプログラムをどうやって書けばよいのか、ということなんですが、まあ、ここら辺はOSだったり基本ライブラリだったりするところなので、普通は気にしなくてもよいところだと思うのですが、最近の私はまさにそこをやっていることが多いので、どうしたものかといつも考えています。
(現実には、C言語で書いているのですが・・・)