[ruby-core:104967] [Ruby master Feature#12075] some container#nonempty?
From:
"gotoken (Kentaro Goto)" <noreply@...>
Date:
2021-08-18 13:21:24 UTC
List:
ruby-core #104967
Issue #12075 has been updated by gotoken (Kentaro Goto).
Boolean `size?` looks good to me. I vote for it.
My first choice was `nonempty?` because this is very common word in popular algorithm text books, e.g., Knuth, Cormen, Sedgewick, Tarjan, Aho, Hopcroft, etc.
However some people pointed `if array.nonempty?` looks negative and does not improve `if !array.empty?`. They don't want to write negative condition there. I can agree that.
`filled?` also makes me mind capacity of the container and it is misleadings. IMHO.
`some?` is cool but we have already `any?`. These are very confusing.
`not( ... )` is quite general idea, and it seems to need too complicated discussions for this simple feature request. Neither `not` method does not meet avoidance negation.
----------------------------------------
Feature #12075: some container#nonempty?
https://bugs.ruby-lang.org/issues/12075#change-93332
* Author: naruse (Yui NARUSE)
* Status: Feedback
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
----------------------------------------
I sometimes write following code.
```ruby
ary = some_metho_returns_nil_or_empty_container() # nil or "" or [] or {}
if ary && !ary.empty?
# some code
end
```
But the condition `ary && !ary.empty?` is too long and complex.
Though Ruby 2.3 introduces `&.`, but this can’t be written as `ary&.empty?`.
One idea is add `nonempty?` write as `ary&.nonempty?`.
akr: `nonempty?` is not good name because human is not good at handling
This discussion matches following core classes:
* String
* Array
* Hash
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>