Issue #14763 has been updated by sunnyrjuneja (Sunny Juneja).


Hey Shevegen,

Thank you for your comments. I really apperciate them! I'll respond inline:

shevegen (Robert A. Heiler) wrote:
> Is there any reason why you did use ":even?" rather
> than ":even"?
> 
>     [2,4,6].all?(:even)

The only reason I used :even? rather than :even is because Integer has a method called even?. In this case, my example is a shorthand for

```ruby
[2, 4, 6].all? { |x| x.even? }
```

I just wanted to show an example with a real method.

> I am mostly neutral on the proposal itself and slightly in 
> favour, primarily because I like symbols and I think there 
> is no problem with it. It should, if accepted, be documented
> somewhere though.

That's a very good point. I forgot to mention it in my original proposal but I wanted to document in the same way inject does. See: http://ruby-doc.org/core-2.5.1/Enumerable.html#method-i-inject

It reads:
```
inject(sym) -> obj
# Sum some numbers
(5..10).reduce(:+)
```

> If you would like to, you could add your issue at:
> 
> https://bugs.ruby-lang.org/issues/14698

Thank you! I had no such idea of such a meeting. I will add it to the issue now.


----------------------------------------
Feature #14763: Allow more Enumerable methods to accept method names as symbol arguments
https://bugs.ruby-lang.org/issues/14763#change-72015

* Author: sunnyrjuneja (Sunny Juneja)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Enumerable has a short hand which accepts method names as symbols.

```ruby
(5..10).reduce(:+) #=> 45
```
I'm proposing we allow the same functionality for #any?, #all?, #find, #reject, #select, #one?, #find_index. I'm requesting this because when I did this earlier today and it did not meet my expectations:

```ruby
[2,4,6].all?(:even?) #=> false
```

* Any risk of incompatibility?
I don't believe so. As of now, #any? accepts an argument and compares using ===. The following is current behavior:

```ruby
[Symbol].any?(:even?) #=> false
[:symbol].any?(:even?) #=> false
[].all?(:even?) #=> true
```

Thanks for consideration of this request. I've used Ruby for 6 years and this is my first feature request. I understand if it is not a high priority or interesting to the maintainers. I am happy to try to add an implementation if it is interesting.



-- 
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>