One-Shot Continuations

"Representing Control in the Presence of One-Shot Continuations"という論文があるのを知った。

Traditional first-class continuation mechanisms allow a captured continuation to be invoked multiple times. Many continuations, however, are invoked only once. This paper introduces one-shot continuations, shows how they interact with traditional multi-shot continuations, and describes a stack-based implementation of control that handles both one-shot and multi-shot continuations. The implementation eliminates the copying overhead for one-shot continuations that is inherent in multi-shot continuations.

私的和訳(直訳気味):

伝統的なファーストクラスの継続のメカニズムは、捕捉された継続を複数回起動することを可能にする。しかし、多くの継続はただ1回だけ起動される。この論文では、one-shot continuationを導入し、それが伝統的なmulti-shot continuationとどのようにinteract withするかを示し、one-shotとmulti-shotの継続の両方を扱う制御のスタックベースの実装を記述する。実装は、one-shot continuationのコピーのためのオーバーヘッド(それはmulti-shot continuationでは必要だった)を除去する。

ファーストクラスの継続をサポートしようとすると、あらゆる場面で継続を意識しなくてはならず、パフォーマンスに深刻な影響を及ぼす場合もあるので、one-shot continuationという考え方は有効だと思う。