title: "cond","and" and "or" in Scheme
body: <p>I'm reading <em>The Little Schemer</em>. And thanks to my broken English, I was confused by this paragraph:</p>
  
  <blockquote>
    <p>(cond ... ) also has the property of not considering all of its
    arguments. Because of this property, however, neither (and ... ) nor
    (or ... ) can be defined as functions in terms of (cond ... ), though
    both (and ... ) and (or ... ) can be expressed as abbreviations of
    (cond ... )-expressions: </p>
  
  <pre><code>(and a b) = (cond (a b) (else #f) 
      and 
  (or a b) = (cond (a #t) (else (b))
  </code></pre>
  </blockquote>
  
  <p>If I understand it correctly, it says (and ...) and (or ...) can be replaced by a (cond ...) expression, but cannot be defined as a function that contains (cond ...). Why is it so? Does it have anything to do with the variant arguments? Thanks.</p>
  
  <p>p.s. I did some searching but only found that (cond ...) ignores the expressions when one of its conditions evaluate to #f.</p>