Project

General

Profile

Feature #6817

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

=begin

I know that what I propose here is a significant change to Ruby, but it's part of my ongoing quest to get some more functional programming features into Ruby (see also #4539 and #6373).

I was wondering if it would make sense to maybe introduce partial application to Ruby? So that instead of

~~~ruby


(1..3).map { |i| i + 2 }
~~~


or the somewhat unwieldy

~~~ruby


(1..3).map(&2.method(:+))
~~~


one could just write

~~~ruby


(1..3).map(&2.+)
~~~



which I think has a quite rubyish feel to it. I have a POC implementation in Ruby (I tried it with various `Fixnum` Fixnum methods) over at [my blog](http://citizen428.net/blog/2012/07/30/ruby-left-section-for-infix-operators), my blog (((<URL:http://citizen428.net/blog/2012/07/30/ruby-left-section-for-infix-operators>))), but that was just a quick hack and obviously I don't want to monkey-patch every method with arity 1, but it was a nice way of exploring possible syntax.
=end

Back