[ruby-core:82582] [CommonRuby Feature#13581] Syntax sugar for method reference

From: zverok.offline@...
Date: 2017-08-31 12:10:56 UTC
List: ruby-core #82582
Issue #13581 has been updated by zverok (Victor Shepelev).


> I am for adding syntax sugar for method reference. But I don't like proposed syntax (e.g. ->).
> Any other idea?

In my pet projects, I often alias `method` as `m`. It is readable enough, short enough and easy to remember, once you've seen it: 

```ruby
roots = [1, 4, 9].map(&Math.m(:sqrt))
%w[foo bar baz].each(&m(:puts))
```
..., and, if introduced into language core, can be easily backported to earlier versions (through something like `backports` or `polyfill` gem).

Another weird-ish idea, following the first one closely, is `.:`, which (for me) looks guessable:

```ruby
[1,2,3].map(&Math.:sqrt)
%w[foo bar baz].each(&.:puts)
```
(BTW, object-less form should also be considered, when weighing proposals, don't you think?)

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

* 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:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next