Issue #8987 has been updated by Tsuyoshi Sawada.


Probably, it makes more sense to extend the syntax of `Symbol#to_proc`. The conventional `Symbol#to_proc` does not take an argument:

    :foo.to_proc # => ->(x){x.foo}

The proposal is to let it take optional arguments that would be passed to the method within the created proc:

    :foo.to_proc(y) # => ->(x){x.foo(y)}

So that 

    :+.to_proc(4) # => ->(x){x + 4}
    [1, 2, 3, 4].map(&:+.to_proc(4)) # => [5, 6, 7, 8]

Not sure if any better than writing the original, but looks consistent.

----------------------------------------
Feature #8987: map/collect extension which handles arguments
https://bugs.ruby-lang.org/issues/8987#change-44878

* Author: So Wieso
* Status: Open
* Priority: Normal
* Assignee: 
* Category: core
* Target version: current: 2.2.0
----------------------------------------
Please consider extending map/collect by allowing additional arguments to be passed to proc, like:
A: [1,2,3,4].map :+, 4
and/or
B: [1,2,3,4].map 4, &:+

=> [5, 6, 7, 8]

Variant A is probably more readable. Variant B is more versatile (allows arbitrary arguments to be passed to block).


---Files--------------------------------
mappi.rb (410 Bytes)


-- 
http://bugs.ruby-lang.org/