title: Scheme recursive unzip function for more than one list
body: <p>I need help finishing up an unzip function which takes a zipped list and returns a list of two lists. The result I want is as follows...</p>
  
  <pre><code>(unzip '((a b) (1 2)))
  '((a 1) (b 2))
  
  (unzip '((a 1) (b 2) (c 3)))
  '((a b c) (1 2 3))
  
  (unzip '(unzip '()))
  '(() ())
  </code></pre>
  
  <p>I can get my code to work for the null case and with a list containing two lists, but I'm having a hard time figuring out how to make it recursive and work for more than 2 lists such as the second example.</p>
  
  <pre><code>(define (unzip l)
    (if (null? l) 
        '(() ())
        (map list (car l) (car (cdr l)))))
  </code></pre>
  
  <p>This will work fine for an empty list or two lists, but I have a hard time setting up the recursive part to work with three or possibly more lists.</p>