From: "ukolovda (Dmitry Ukolov) via ruby-core" Date: 2024-07-30T14:04:49+00:00 Subject: [ruby-core:118743] [Ruby master Feature#20657] Allow Enumerable#map(&:method) and #each accept additional parameters for method Issue #20657 has been updated by ukolovda (Dmitry Ukolov). 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. I'm disappointed. Thank you for the clarification. ---------------------------------------- Feature #20657: Allow Enumerable#map(&:method) and #each accept additional parameters for method https://bugs.ruby-lang.org/issues/20657#change-109282 * Author: ukolovda (Dmitry Ukolov) * Status: Open ---------------------------------------- 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/