title: Explanation of "Lose your head" in lazy sequences
body: <p>In Clojure programming language, why this code passes with flying colors?</p>
  
  <pre><code>(let [r (range 1e9)] [(first r) (last r)])
  </code></pre>
  
  <p>While this one fails:</p>
  
  <pre><code>(let [r (range 1e9)] [(last r) (first r)])
  </code></pre>
  
  <p>I know it is about "Losing your head" advice but would you please explain it to me? I'm not able to digest it yet.</p>
  
  <p>UPDATE:<br>
  It is really hard to pick the correct answer, two answers are amazingly informative.<br>
  Note: Code snippets are from "The Joy of Clojure".</p>