title: Scheme -- Returning a recursively created list
body: <pre><code>(define (de-caesar shift numbers ret)
  (cond
  [(null? numbers) ret]
  [else (de-caesar shift (cdr numbers) (append ret (list(+ (car numbers) shift))))] 
  ))
  </code></pre>
  
  <p>This function takes a value (3) and a list of values '(17 3 9 21) and an empty list '() as parameters.
  Recursively, a new list of values is formed and returned '(20 6 12 24) by shifting all of the input values by 3.</p>
  
  <p>That being said, I am supposed to be able to do this with a function that only accepts 2 parameters (shift and numbers).</p>
  
  <p>How can I return this list of new values, without passing around a pre-created empty list parameter?</p>
  
  <p>Any help/information is greatly appreciated.</p>