From: citizen428@... Date: 2014-08-02T08:59:12+00:00 Subject: [ruby-core:64160] [ruby-trunk - Feature #6817] Partial application Issue #6817 has been updated by Michael Kohl. Koichi Sasada wrote: > Basically, I like this proposal. > But I'm not sure this notation can be acceptable. In that case, how about making Symbol#to_proc accept additional arguments? (1..3).map(:+, 2) The syntax would be very straightforward, but it doesn't go well with the current implementation of Symbol#to_proc's proc cache. Also this does go away a bit from the original point of partial application, though tbh this sort of scenario is what I mostly had in mind anyway. ---------------------------------------- Feature #6817: Partial application https://bugs.ruby-lang.org/issues/6817#change-48163 * Author: Michael Kohl * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: core * Target version: next minor ---------------------------------------- =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 (1..3).map { |i| i + 2 } or the somewhat unwieldy (1..3).map(&2.method(:+)) one could just write (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 methods) over at my blog ((())), 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 -- https://bugs.ruby-lang.org/