Issue #11161 has been updated by zverok (Victor Shepelev).


> It needs better (practical) usages to show usefulness of this proposal.

@akr I believe the code in my comment provides the justification:

```ruby
URLS.
  map(&Faraday.method(:get).rcurry[some_get_param: 'value']).
  map(&JSON.method(:parse).rcurry[symbolize_names: true])
```

In general, the idea is: a lot of methods have "options" as their last argument(s), and first argument(s) is the main "subject" of the method. 
So, when the method is converted to proc, you can "bind" those options with `rcurry`, and then pass it, like in my example above, as a 1-argument proc with some options set.

The alternative, BTW, would be not currying _last_ arguments, but currying _any_ keyword argument by name.

----------------------------------------
Feature #11161: Proc/Method#rcurry working like curry but in reverse order
https://bugs.ruby-lang.org/issues/11161#change-72113

* Author: Hanmac (Hans Mackowiak)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
currenty with curry you can only replace elements in order
`#rcurry` should be added to be able to return the last parameter first.


```ruby
def abc(a,b); "a=#{a}, b=#{b}"; end
c= method(:abc).curry

c[1,2] #=> "a=1, b=2" 
c[1][2] #=> "a=1, b=2" 
```

i image rcurry to be like that:
```ruby
def abc(a,b); "a=#{a}, b=#{b}"; end
c= method(:abc).rcurry(2)

c[1,2] #=> "a=2, b=1" 
c[1][2] #=> "a=2, b=1" 
```

because of optional parameters, rcurry might be only be used when giving the arity



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