Why will a Range not work when descending? <p>Why will <code>(1..5).each</code> iterate over <code>1,2,3,4,5</code>, but <code>(5..1)</code> will not? It returns the Range instead.</p> <pre><code>1.9.2p290 :007 &gt; (1..5).each do |i| puts i end 1 2 3 4 5 =&gt; 1..5 1.9.2p290 :008 &gt; (5..1).each do |i| puts i end =&gt; 5..1 </code></pre>