Issue #13581 has been updated by shuber (Sean Huber).


nobu (Nobuyoshi Nakada) wrote:
> shuber (Sean Huber) wrote:
> > What do you guys think about this alternative syntax? (working proof of concept: https://github.com/LendingHome/pipe_operator)
> 
> It conflicts with existing `|` methods.
> 
> ```ruby
> p 1.|2 #=> 3
> ```

@nobu That's just an alias for syntactic sugar - the actual method is named `__pipe__`! My thinking was that it's pretty similar to how we commonly use `send` (which can have conflicts in certain domains e.g. delivery services) but it's actually an alias of `__send__` which is double underscored to avoid conflicts. Some objects may have their own definitions of `|` but we always have `pipe` or `__pipe__` available to remove any ambiguity. Does that make sense?

     def __pipe__(*args, &block)
      Pipe.new(self, *args, &block)
    end

    alias | __pipe__
    alias pipe __pipe__

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

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