title: Recursion producing extra empty lists in Clojure
body: <p>This question is about an exercise for this course: <a href="http://iloveponies.github.io/120-hour-epic-sax-marathon/sudoku.html" rel="nofollow noreferrer">http://iloveponies.github.io/120-hour-epic-sax-marathon/sudoku.html</a></p>
  
  <p>My implementation to function <code>solve</code> returns the solved sudoku board but in addition surrounding it are a lot of empty lists. All of my other functions work properly and don't return any empty lists. I can't figure out why this happens.</p>
  
  <p>Here's the relevant code:</p>
  
  <pre><code>(defn solve [board]
    (if-let [point (find-empty-point board)]
      (let [valid-values (valid-values-for board point)]
        (for [value valid-values]
          (solve (set-value-at board point value))))
      (if (valid-solution? board)
        board)))
  
  (def sudoku-board
    (board [[5 3 0 0 7 0 0 0 0]
            [6 0 0 1 9 5 0 0 0]
            [0 9 8 0 0 0 0 6 0]
            [8 0 0 0 6 0 0 0 3]
            [4 0 0 8 0 3 0 0 1]
            [7 0 0 0 2 0 0 0 6]
            [0 6 0 0 0 0 2 8 0]
            [0 0 0 4 1 9 0 0 5]
            [0 0 0 0 8 0 0 7 9]]))
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>(solve sudoku-board)
  (((((()) ())
  ((((((() (())) (())) ((() (())) ((()))) ((()) ((()))))))
  (() ((((() (())) (())) ((() (())) ((()))) ((()) ((()))))))
  (((((() (())) (())) ((() (())) ((()))) ((()) ((())))))))
  ((()) (())))
  (((((((() (())) (())) ((() (())) ((()))) ((()) ((()))))))
  (() ((((() (())) (())) ((() (())) ((()))) ((()) ((()))))))
  (((((() (())) (())) ((() (())) ((()))) ((()) ((())))))))
  </code></pre>
  
  <p>...</p>
  
  <pre><code>(((((((((((((((([[5 3 4 6 7 8 9 1 2]
                                                      [6 7 2 1 9 5 3 4 8]
                                                      [1 9 8 3 4 2 5 6 7]
                                                      [8 5 9 7 6 1 4 2 3]
                                                      [4 2 6 8 5 3 7 9 1]
                                                      [7 1 3 9 2 4 8 5 6]
                                                      [9 6 1 5 3 7 2 8 4]
                                                      [2 8 7 4 1 9 6 3 5]
                                                      [3 4 5 2 8 6 1 7 9]]))))))))))
  </code></pre>
  
  <p>...</p>
  
  <pre><code>((((((((()) ((((((()) (()))))) (((((((()))) ((())))))))) ((((((() ()) (())))) ((((() ()) (()))))) (())))
                    (((((((() ())))) ((((() ()))))) (()) (((((() ())))) ((((() ()))))))
                     ((((())) ()) ((() (())) (()) (())))
                     (((() (((())))) (()) (())) (((((())))) ())))
                    (((()) ((((((()) (()))))) (((((((()))) ((())))))))) (((((((((((((()))))))))))) ())))))
                  ()))))))
            ())))))
       ())))))
  </code></pre>