From: "nobu (Nobuyoshi Nakada) via ruby-core" Date: 2024-07-31T00:23:30+00:00 Subject: [ruby-core:118751] [Ruby master Feature#20657] Allow Enumerable#map(&:method) and #each accept additional parameters for method Issue #20657 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Feedback ukolovda (Dmitry Ukolov) wrote in #note-3: > Oo, the ampersand is not language syntax, as I think before, but simple operator, converting Symbol to Proc. It is fine trix, but cannot accept additional arguments. You mean ampersand+colon(`&:`)? "Additional parameters" feature has been requested many times and in many ways (including the same as your proposal) already, but no acceptable solution. Instead, numbered parameters (`_1`, `_2`, ...) and `it` parameter have been introduced. ---------------------------------------- Feature #20657: Allow Enumerable#map(&:method) and #each accept additional parameters for method https://bugs.ruby-lang.org/issues/20657#change-109295 * Author: ukolovda (Dmitry Ukolov) * Status: Feedback ---------------------------------------- I can use `#map` (or `#each`) with short method name, for example: ``` ruby a = ["a1", "b1", "c1"] b = a.map(&:length) # or a.each(&:some_method) ``` But with additional arguments I must use yield: ```ruby c = a.map { |item| item.ljust(10) } # or a.each { |item| item.some_method(arg1, arg2) } ``` Direct sending allow make the code more simple: ```ruby c = a.map(&:ljust, 10) # Now give syntax error, unexpected ',', expecting ')' # or a.each(&:some_method, arg1, arg2) # Now give syntax error, unexpected ',', expecting ')' ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/