title: Why continuation passing style
body: <p>In <a href="http://scheme.com/tspl4/" rel="noreferrer"><em>The Scheme Programming Language</em></a> by Kent Dybvig (4th edition) <a href="http://scheme.com/tspl4/further.html#./further:h4" rel="noreferrer">section 3.4</a>, he describes very clearly <em>what</em> continuation passing style is. For the <em>why</em> he gives two reasons:  </p>
  
  <ol>
  <li>pass more than one result to its continuation, because the procedure that implements the continuation can take any number of arguments.</li>
  <li>CPS also allows a procedure to take separate continuations ..., which may accept different numbers of arguments.   </li>
  </ol>
  
  <p>Since the first reason can also be done using the <code>values</code> procedure and the second using <code>case-lambda</code>, I'm not clear the advantages of using continuation passing style.  Could someone show me some examples of where continuation passing style is appropriate, where it makes the code better, clearer, etc.?</p>