[#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:56349] Re: [CommonRuby - Feature #8723] Array.any? predicate returns true for empty array.

From: Fuad Saud <fuadksd@...>
Date: 2013-08-03 08:24:17 UTC
List: ruby-core #56349
Some more explanation reading on the subject - and reasons for this:
http://en.m.wikipedia.org/wiki/Universal_quantification

http://en.m.wikipedia.org/wiki/Vacuous_truth

It's a basic classic logic definition.
On Aug 3, 2013 5:02 AM, Martin J. Dst <duerst@it.aoyama.ac.jp> wrote:

> On 2013/08/03 15:40, nurettin (Nurettin Onur TUGCU) wrote:
>
>>
>> Issue #8723 has been updated by nurettin (Nurettin Onur TUGCU).
>>
>>
>> I find I need to address all the questions
>>
>
>  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.
>>
>
> You say:
>
> > Also, defining "all?" or "any?" makes no sense for empty set since they
> will never execute.
>
> So should be write code like
>
> unless enum.empty?
>    enum.all { |x| predicate(x) }
> end
>
> Think about this in a bigger context. Assume we are applying .any or .all
> not to a simple array, but to an array of arrays.
>
> We would e.g. write
>
> arrays.all { |a| a.all { |x| predicate(x) } }
>
> If we use what we currently have in Ruby, this just works, even if there
> are some empty lists in the 'arrays' array. With your proposal, we'd have
> to write a lot of special code.
>
>  ============
>>
>> 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.
>>
>
> It would be incorrect behavior to treat undefinedness as truth, but the
> results of these operations are not undefined. They have a clear underlying
> mathematical background. People familiar with this area know what the
> results are, and they expect them to work the way they do. Anything else
> would be highly confusing for everybody except maybe beginners.
>
> I suggest you read some introductory book in this area (discrete math). An
> alternative is to read a book on Haskell, especially one that discusses
> code transformations/equivalences and proofs.
>
> Regards,   Martin.
>
>

In This Thread