title: deep-reverse for scheme
body: <p>When entering the list of ((1 2) (3 4)), I want to reverse it, but not so it's ((3 4) (1 2)), which is what reverse does, so I'm trying to write a deep-reverse procedure:</p>
  
  <pre><code>(define (deep-reverse l)
    (cond ((null? l) nil)
          (not (pair? (car l)) l)
          (else (append (deep-reverse (cdr l)) (list (car l))))))
  </code></pre>
  
  <p>but it just throws back ((1 2) (3 4)).  What's wrong and how do I get this to work?</p>