title: Cross between "dotimes" and "for" functionality?
body: <p>I frequently find myself wanting to efficiently run a Clojure function multiple times with an integer index (like "dotimes") but also get the results out as a ready-made sequence/list (like "for").</p>
  
  <p>i.e. I'd like to do something like this:</p>
  
  <pre><code>(fortimes [i 10] (* i i))
  
  =&gt; (0 1 4 9 16 25 36 49 64 81)
  </code></pre>
  
  <p>Clearly it would be possible to do:</p>
  
  <pre><code>(for [i (range 10)] (* i i))
  </code></pre>
  
  <p>But I'd like to avoid creating and throwing away the temporary range list if at all possible.</p>
  
  <p>What's the best way to achieve this in Clojure? </p>