From: "Dan0042 (Daniel DeLorme) via ruby-core" Date: 2023-09-25T01:35:27+00:00 Subject: [ruby-core:114895] [Ruby master Feature#13933] Add Range#empty? Issue #13933 has been updated by Dan0042 (Daniel DeLorme). akr (Akira Tanaka) wrote in #note-12: > From experience with `Float::NAN`, I think it is not a good idea to expand such objects. > It makes the behavior of `Array#<=>` inconsistent. I agree but I think this is a bit different from what I was talking about. Float::NAN is a float that is not comparable with other floats. This is not the same case as a value that is not comparable with anything else. > There is no reason to break it. I agree; as I said, I'm not suggesting we change this now. > > Or maybe we can define a range "r" as empty if `r.begin.nil? and r.exclude_end? and r.end.respond_to?(:empty?) and r.end.empty?` > > You ignored the user-defined classes I mentioned. > A user may define a class with a minimum value. > The minimum value may not have `empty?` method. How do you define which is the minimum value? I suggested the above as a *posssible* way to define the minimum value. So a custom class would need to have #empty? that returns true in order to define "this is the minimum". But it was just a suggestion. Or maybe each class could have a MINIMUM constant like `String::MINIMUM = ""`, etc. More importantly, I think that `(...minimum).empty?` is such an edge case of an edge case that it's not worth worrying too much. Are you suggesting that `Range#empty?` should not exist just because it's not possible to perfectly handle this extreme edge case for every possible class? Would it really be so bad if it returned `true` for user-defined classes? ---------------------------------------- Feature #13933: Add Range#empty? https://bugs.ruby-lang.org/issues/13933#change-104753 * Author: ted (Ted Johansson) * Status: Open * Priority: Normal ---------------------------------------- Range already responds to #size. It would be nice if it also responded to predicate #empty? :-) -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/