title: Clojure: let scope and function return value
body: <p>I am having some troubles figuring how to use the "let" form. In the example below, I would like to locally bind the value "cols" in order to work on it later in the function. What I am noticing, however, is that if I use "let" the function sel-opt-tmp will return a nil value instead than a list.</p>
  
  <pre><code>(defn sel-opt-tmp []
    (let [cols "test"]))
  
  (prn (sel-opt-tmp))
  </code></pre>
  
  <p>*The above code returns a nil value.</p>
  
  <p>I understand that "let" only binds a value in the scope of a function, what I do not know is if there is a way to pass the value out of the let scope. Maybe there is something like "return" that I am not aware of? Or this is simply bad design and I should not use the binding at all in this case (this tends to create long chains of functions that are difficult to read although)?</p>