Concurrent Prolog
FIFOの待ち行列を管理するプログラムの例を以下に示す。ストリームSに enqueue(X) のメッセージを送るとXの内容が待ち行列の最後に追加され、dequeue(X) のメッセージを送ると待ち行列の先頭要素がXに返される。待ち行列の表現には、2つのリストの差分で1つのデータの並びを表現する差分リストのテクニックが使用されている。
前出のマージプロセスと組み合わせることで、複数のプロセスからの dequeue/enqueue のメッセージを処理することができ、クライアントサーバモデルでのサーバプロセスのように使うことができる。