Feature #6817

Updated by Shyouhei Urabe over 1 year 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



<pre><code class="ruby">
(1..3).map { |i| i + 2 }
</code></pre>


or the somewhat unwieldy

<pre><code class="ruby">
(1..3).map(&2.method(:+))
</code></pre>


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

one could just write



<pre><code class="ruby">
(1..3).map(&2.+)


</code></pre>

which I think has a quite rubyish feel to it. I have a POC implementation in Ruby (I tried it with various Fixnum methods) over at my blog (((<URL:http://citizen428.net/blog/2012/07/30/ruby-left-section-for-infix-operators>))), (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