title: What is the convention for returning a side-effect in Scheme?
body: <p>I'm going through the <em>Structure and Interpretation of Computer Programs</em> MIT video lecture series, and I had a quick question about returning side-effects from functions.</p>
  
  <p>In <a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/3a-henderson-escher-example/" rel="nofollow">video 3A</a>, the professor writes a quick equation for <code>for-each</code> similar to this:</p>
  
  <pre><code>(define (for-each p l)
     (if (null? l)
        "done"
        (p (car l)
           (for-each p (cdr l)))))
  </code></pre>
  
  <p>Is there a specific convention for returning a side-effect from a function in Scheme, or was the <code>"done"</code> an arbitrary choice?</p>