Issue #13581 has been updated by landongrindheim (Landon Grindheim).


> * `map(&Math->sqrt)` (and just `each(&->puts)` probably?) -- Matz is explicitly against it;
> * `map(&Math\.sqrt)` (not sure about puts);
> * `map(&Math.m(:sqrt))`, `each(&m(:puts))` (just shortening, no language syntax change)
> * `map(&Math.:sqrt)`, `each(&.:puts)`
> * `map(&Math:sqrt)`, `each(&self:puts)`
> * `map(&Math#sqrt)`, `each(&#puts)` (it was my proposal, "just how it looks in docs", but I should reconsider: in docs it is `Math::sqrt`, in fact)
> * `map(&Math:::sqrt)`, `each(&:::puts)`
> * `map(&~>(:sqrt, Math)`), `each(&~>(:puts))`
> * [several](https://bugs.ruby-lang.org/issues/12125#note-4) by @Papierkorb:
>   * `map(&Math.>sqrt)`, `each(&.>puts)` (@nobu: conflicts with existing syntax)
>   * `map(&Math<sqrt>)`, `each(&<puts>)` (@nobu: conflicts with existing syntax)
>   * `map(&Math&>sqrt)`, `each(&&>puts)`
>   * `map(&Math|>sqrt)`, `each(&|>puts)` (too confusable with Elixir-like pipe, probably)

Is `map(&Math.&(:sqrt)` viable? Perhaps it would be confused with the safe navigation operator.

----------------------------------------
Feature #13581: Syntax sugar for method reference
https://bugs.ruby-lang.org/issues/13581#change-70161

* Author: americodls (Americo Duarte)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Some another programming languages (even Java, in version 8) has a cool way to refer a method as a reference.

I wrote some examples here: https://gist.github.com/americodls/20981b2864d166eee8d231904303f24b

I miss this thing in ruby.

I would thinking if is possible some like this:

~~~
roots = [1, 4, 9].map &Math.method(:sqrt)
~~~

Could be like this:

~~~
roots = [1, 4, 9].map Math->method
~~~

What do you guys thinking about it?



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