title: ruby's "any?" and "all?" methods behaviour on Empty Arrays and Hashes
body: <p>First of all I found two useful articles in documentations about these methods:</p>
  <ul>
  <li><a href="http://www.ruby-doc.org/core-1.9.3/Enumerable.html" rel="noreferrer">http://www.ruby-doc.org/core-1.9.3/Enumerable.html</a></li>
  <li><a href="http://www.globalnerdy.com/2008/01/29/enumerating-rubys-enumerable-module-part-1-all-and-any/" rel="noreferrer">http://www.globalnerdy.com/2008/01/29/enumerating-rubys-enumerable-module-part-1-all-and-any/</a></li>
  </ul>
  <blockquote>
  <p>all?: Passes each element of the collection to the given block. The method returns true if the block never returns false or nil.</p>
  <p>any?: Passes each element of the collection to the given block. The method returns true if the block ever returns a value other than false or nil.</p>
  </blockquote>
  <p>But in case of empty arrays and hashes I got:</p>
  <pre><code>irb(main):004:0&gt; [nil, &quot;car&quot;, &quot;bus&quot;].all?
  =&gt; false
  irb(main):005:0&gt; [&quot;nil&quot;, &quot;car&quot;, &quot;bus&quot;].all?
  =&gt; true
  irb(main):006:0&gt; [].all?
  =&gt; true
  irb(main):007:0&gt; [&quot;nil&quot;, &quot;car&quot;, &quot;bus&quot;].any?
  =&gt; true
  irb(main):008:0&gt; [nil, &quot;car&quot;, &quot;bus&quot;].any?
  =&gt; true
  irb(main):009:0&gt; [nil].any?
  =&gt; false
  irb(main):010:0&gt; [].any?
  =&gt; false
  </code></pre>
  <p>Can somebody explain to me why empty arrays give me <code>false</code> in case of the <code>any?</code> method and <code>true</code> in case of <code>all?</code>?</p>