title: Can the function argument to `call/cc` equivalently either invoke the continuation or return without invoking the continuation?
body: <p>The Scheme Programming Language says</p>
  
  <blockquote>
    <p>Scheme allows the continuation of any expression to be captured with the procedure <code>call/cc</code>. <code>call/cc</code>
    must be passed a procedure <code>p</code> of one argument. <code>call/cc</code> constructs a concrete representation of the current
    continuation and passes it to <code>p</code>. The continuation itself is represented by a procedure <code>k</code>. Each time <code>k</code> is applied
    to a value, it returns the value to the continuation of the <code>call/cc</code> application. This value becomes, in
    essence, the value of the application of <code>call/cc</code>.
    If <code>p</code> returns without invoking <code>k</code>, the value returned by the procedure becomes the value of the application of
    <code>call/cc</code>.</p>
  </blockquote>
  
  <p>Are the two following ways of defining <code>p</code> equivalent, as far as being called by <code>call/cc</code> is concerned:</p>
  
  <ul>
  <li><code>p</code> returns without invoking <code>k</code>, </li>
  <li><code>p</code>   calls <code>k</code> with its otherwise return value?</li>
  </ul>
  
  <p>I am not sure how <code>call/cc</code> is defined. 
  Does <code>call/cc</code> ever directly call the continuation <code>k</code>, besides indirectly via <code>p</code> calling <code>k</code>?</p>
  
  <p>Is it perfectly fine that both <code>call/cc</code> and <code>p</code> don't invoke continuation <code>k</code>? </p>