From: "alexeymuranov (Alexey Muranov)" Date: 2013-08-03T16:09:34+09:00 Subject: [ruby-core:56347] [CommonRuby - Feature #8723] Array.any? predicate returns true for empty array. Issue #8723 has been updated by alexeymuranov (Alexey Muranov). Nurettin, what would be a benefit to introducing this exception to a simple rule? You propose to make the truth value undefined where it is well defined. Can you cite some mathematical theory or natural language where it is undefined? Do you agree at least that you initial proposal with assigning false to [].all?{...} was unreasonable? Trying to make sense of your alternative point of view in a natural language, suppose it is false that ALL of your children are redhead. Would it be true then that NOT ALL of them are redhead? If i follow your logic, this should mean that you have both redhead and non-redhead children. What if you have no children? In my opinion, your confusion arrises from the fact that in natural languages you would not say a phrase like this, because it is simpler and more informative to say that you have no children. If someone asks you if all your children are readhead and you have none, you will answer "yes" if you are a mathematician, and probably "i have not children/none of your business" otherwise. ---------------------------------------- Feature #8723: Array.any? predicate returns true for empty array. https://bugs.ruby-lang.org/issues/8723#change-40842 Author: nurettin (Nurettin Onur TUGCU) Status: Rejected Priority: Normal Assignee: Category: Target version: Are all your children redheaded? Would this be true if you have no children? I have no children, therefore none of my children are redheaded. Therefore [].any?{ true } == true makes no sense. Expected behavior: [].any?{ true } == false because the array is empty. -- http://bugs.ruby-lang.org/