title: Create and return list in a method in Scheme
body: <p>I have a method in which I want to create an empty list, append some values in it and then return that list. My method keeps returning an empty list. What am I doing wrong?</p>
  
  <pre><code>(define-struct graph (vertices edges))
  (define-struct vertice (name visited))
  (define-struct edge (start-vertice end-vertice length))
  
  ;I create data for testing here
  (define vertices-list2
    (list (make-vertice 0 0)
          (make-vertice 1 0)
          (make-vertice 2 0)
          )
    )
  
  (define edges-list2
    (list (make-edge 0 1 0)
          (make-edge 1 2 0)
          )
    )
  
  (define (find-adj V edge-list)
    (let ((ret '()))
      (cond
        [(empty? edge-list) ret]
        [(eq? V (edge-start-vertice (car edge-list)))
         (begin
           (append ret '((edge-end-vertice (car edge-list))) )
           (find-adj V (cdr edge-list)))
         ]
        [else (find-adj V (cdr edge-list))]
        )
      )
    )
  
   (define G (make-graph vertices-list2 edges-list2))
   (find-adj 0 (graph-edges G))
  </code></pre>