「高度なスキーム:いたずらなビット」ページには次のように記載されています。
継続は、他のほぼすべての制御フロー構造[...]の派生元となる強力な制御 フロー構造です。
Scheme call/cc
がPeter LandinのJ演算子に関連(*)しているため、既知の制御フロー構造を実装するために使用できると思いましたか?
「制御フロー構造」では、例外、コルーチン、グリーンスレッドなど、Wikipediaのそれらの記述について具体的に考えています。
具体的には、を使用して実装できない制御フロー構造の例はありますcall/cc
か?
(*)call/cc
Jオペレーターほど強力な論文を作成することはできませんでした。 Felleisenの論文(私は読んでおらず、明らかにそれを完全に理解するのに問題がある)はこれを調査し、それらが異なる複雑さのクラスにあるにもかかわらず、形式的に同等であると結論付けているようです。
(以下のコメントに基づいて質問を更新したことにも注意してください)
更新
以下の@Neelの優れた回答に基づいて、区切られたおよび区切られていない継続についてコメントしているサイトを見ましたが、実際には、区切られていcall/cc
ないだけでは十分ではないようです。一方、一流の区切られた継続(などshift/reset
)を使用して、制御フロー構造を表現することができます。
call/cc
ように区切られていない継続は例外を表現できないということです。(Thieleckeが指摘しているように、プログラム用と例外ハンドラー用の2つの継続を渡すことで例外を実装できますが、それだけではcall/cc
amb
演算子など。