秒後に)43});これにより、インデント問題は解決されました。大量に書く必要があり、あまり簡潔とは言えません。そのため、本文のコルーチンを使ったイディオムに進化していったようです。継続とコルーチンの関係たまにコルーチンと混同される言語機能に、「継続」という非常に強力な言語機能があります。継続とは何かを説明するととても長いのですが、関係だけを一言で言えば、継続はコルーチンの上位互換です。継続を使うと、コルーチンを表現できます。普通の関数として定義できてしまいます。継続=コルーチンではありません。継続にできてコルーチンにできない典型的な例だけを挙げておきます。まで辞書順に出力するコードです。これは、要素の数だけインデントが深まるというインデント地獄になっています。コルーチンでは、このインデント地獄を解決することはできません。返す)というところです。これはコルーチンにはできず、継続にはできるところです。他の参考書を見てください。*2:コルーチンはプログラミング言語理論の中で生まれたと思い込んでましたが、出自はもっと実践的なものだったとか。くわしくは記事の方で。*3:さすがに「★なんかそれっぽい書き出し」とかはひどいので、なるべくちゃんと書きましょう(自省)。いう言語の中で登場していますが、当時の論文にはコルーチンの語が出てこないので、おそらく独立して再発明されたものと思われます。*5:シングルスレッドの理由としては、性能の低い計算機でも動かせること、バグの元であるマルチスレッドプログラミングをユーザに課さないこと、元々の想定ユースケースではシングルスレッドで問題なかったこと、などが考えられます。ような拡張を使うとマルチスレッドができますが、これは置いておきます。*7:もちろん、実際の実装が構文糖になっているわけではないと思います。*8:簡単のため、引数は無視しています。