`for` has a nifty special syntax `:when`:
~~~{.clojure}
(for [new-value (valid-values-for board coord)
      :let [solution (solve (set-value-at board coord new-value))]
      :when solution]
  solution)