title: Is there a reason that we cannot iterate on "reverse Range" in ruby?
body: <p>I tried to iterate backwards with using a Range and <code>each</code>:</p>
  
  <pre><code>(4..0).each do |i|
    puts i
  end
  ==&gt; 4..0
  </code></pre>
  
  <p>Iteration through <code>0..4</code> writes the numbers. On the other Range <code>r = 4..0</code> seems to be ok, <code>r.first == 4</code>, <code>r.last == 0</code>.</p>
  
  <p>It seems to be strange to me that the construct above does not produce the expected result. What is the a reason for that? What are the situations when this behaviour is reasonable?</p>