[#56333] [CommonRuby - Feature #8723][Open] Array.any? predicate returns true for empty array. — "nurettin (Nurettin Onur TUGCU)" <onurtugcu@...>

12 messages 2013/08/02

[#56368] [ruby-trunk - Bug #8730][Open] "rescue Exception" rescues Timeout::ExitException — "takiuchi (Genki Takiuchi)" <genki@...21g.com>

15 messages 2013/08/04

[#56407] [ruby-trunk - misc #8741][Open] email notification on bugs.ruby-lang.org is broken — "rits (First Last)" <redmine@...>

18 messages 2013/08/05

[#56524] [ruby-trunk - Bug #8770][Open] [PATCH] process.c: avoid EINTR from Process.spawn — "normalperson (Eric Wong)" <normalperson@...>

19 messages 2013/08/10

[#56536] [ruby-trunk - Feature #8772][Open] Hash alias #| merge, and the case for Hash and Array polymorphism — "trans (Thomas Sawyer)" <redmine@...>

24 messages 2013/08/11

[#56544] [ruby-trunk - Bug #8774][Open] rb_file_dirname return wrong encoding string when dir is "." — jiayp@... (贾 延平) <jiayp@...>

10 messages 2013/08/11

[#56569] [ruby-trunk - Feature #8781][Open] Use require_relative() instead of require() if possible — "ko1 (Koichi Sasada)" <redmine@...>

31 messages 2013/08/12
[#56582] [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — "drbrain (Eric Hodel)" <drbrain@...7.net> 2013/08/12

[#56584] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — SASADA Koichi <ko1@...> 2013/08/12

(2013/08/13 2:25), drbrain (Eric Hodel) wrote:

[#56636] Re: [ruby-trunk - Feature #8781] Use require_relative() instead of require() if possible — Aaron Patterson <tenderlove@...> 2013/08/16

On Tue, Aug 13, 2013 at 07:38:01AM +0900, SASADA Koichi wrote:

[#56634] [ruby-trunk - Feature #8788][Open] use eventfd on newer Linux instead of pipe for timer thread — "normalperson (Eric Wong)" <normalperson@...>

11 messages 2013/08/16

[#56648] [ruby-trunk - Bug #8795][Open] "Null byte in string error" on Marshal.load — "mml (McClain Looney)" <m@...>

17 messages 2013/08/16

[#56824] [ruby-trunk - Feature #8823][Open] Run trap handler in an independent thread called "Signal thread" — "ko1 (Koichi Sasada)" <redmine@...>

14 messages 2013/08/27

[#56878] [ruby-trunk - misc #8835][Open] Introducing a semantic versioning scheme and branching policy — "knu (Akinori MUSHA)" <knu@...>

11 messages 2013/08/30

[#56890] [ruby-trunk - Feature #8839][Open] Class and module should return the class or module that was opened — "headius (Charles Nutter)" <headius@...>

26 messages 2013/08/30

[#56894] [ruby-trunk - Feature #8840][Open] Yielder#state — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

14 messages 2013/08/30

[ruby-core:56346] [CommonRuby - Feature #8723] Array.any? predicate returns true for empty array.

From: "nurettin (Nurettin Onur TUGCU)" <onurtugcu@...>
Date: 2013-08-03 06:40:37 UTC
List: ruby-core #56346
Issue #8723 has been updated by nurettin (Nurettin Onur TUGCU).


I find I need to address all the questions 

=============

"If enum is empty, there is in fact *none* element which could not satisfy the predicate. " -- Eregon

none element which could not satisfy, you could interpret this as "all elements satisfy" however I think this is wrong because there are no elements to satisfy, which means the result is undefined (maybe you could say nil), not true.

=============

"So what's the neutral element of logical or (∨)? It's false. And what's the neutral element of logical and (∧)? It's true. That means that we get false for [].any {|x| predicate(x) }, and true for [].all {|x| predicate(x) }. " -- duerst


I see completely what you are getting at and it does make sense only if the result is either true or false. (which is what predicate is defined as, mathematically, loosely speaking) However I find the result needs not be defined. Also, defining "all?" or "any?" makes no sense for empty set since they will never execute. Programmatically speaking, one could treat, based on this opinion, the result of all and any as any false'ey value such as nil or false.

============

Of course I understand that there are other languages which do this the same, I also understand that it would break existing code, and I know that docs are clear, and of course I can write my own, but is it really correct behavior to treat undefinedness as truth? In my opinion, no.

----------------------------------------
Feature #8723: Array.any? predicate returns true for empty array.
https://bugs.ruby-lang.org/issues/8723#change-40841

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/

In This Thread