Project

General

Profile

Feature #6817

Updated by shyouhei (Shyouhei Urabe) almost 8 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  

   

 <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