title: Will last of a lazy seq evaluate all elements in clojure?
body: <p>Let's assume that we have an expensive computation <code>expensive</code>. If we consider that <code>map</code> produces a lazy seq, then does the following evaluate the function <code>expensive</code> for all elements of the mapped collection or only for the last one?</p>
  
  <pre><code>(last
    (map expensive '(1 2 3 4 5)))
  </code></pre>
  
  <p>I.e. does this evaluate <code>expensive</code> for all the values 1..5 or does it only evaluate <code>(expensive 5)</code>?</p>