Project

General

Profile

Actions

Feature #2691

closed

RCR: allow {select, collect, map} to accept symbol argument

Feature #2691: RCR: allow {select, collect, map} to accept symbol argument

Added by yugui (Yuki Sonoda) over 15 years ago. Updated over 14 years ago.

Status:
Rejected
Target version:
-
[ruby-core:27967]

Description

=begin
This reply registers the suggestion by Roger to the redmine.

and -1 because a method name is not a method itself.
Symbol#to_proc is the limit I can accept.

On Sat, Jan 30, 2010 at 10:14 AM, Roger Pack wrote:

Background.

Currently in order to avoid using braces and to use select/map et al,
one must do

collection.map &:symbol

This is quite explicit, which is good, however the syntax is somewhat
ugly, which is surprising (mostly because the punctuation is
somewhat...hard to read, at least for this Ruby reader).

Suggestion:

Allow map/etc al to accept a single argument, and convert it implicitly to proc.

collection.map(:symbol)

This reads more easily.

Another option would be to add map_by(arg) and collect_by(arg)

which would actually be more preferable, as least for me.

Thoughts?
Thanks.
-r

-- Yuki Sonoda (Yugui)
=end

Updated by mame (Yusuke Endoh) over 15 years ago Actions #1

=begin
Hi,

2010/1/30 Yugui :

This reply registers the suggestion by Roger to the redmine.

and -1 because a method name is not a method itself.
Symbol#to_proc is the limit I can accept.

While I agree with Yugui, Array#inject accepts a Symbol.
I dislike the behavior of inject.

--
Yusuke ENDOH

=end

Updated by zenspider (Ryan Davis) over 15 years ago Actions #2

=begin

On Jan 30, 2010, at 00:10 , Yugui wrote:

This reply registers the suggestion by Roger to the redmine.

and -1 because a method name is not a method itself.
Symbol#to_proc is the limit I can accept.

I completely agree on this point. I want something explicit, not magic.

=end

Updated by RickDeNatale (Rick DeNatale) over 15 years ago Actions #3

=begin
On Sun, Jan 31, 2010 at 5:28 PM, Ryan Davis wrote:

On Jan 30, 2010, at 00:10 , Yugui wrote:

This reply registers the suggestion by Roger to the redmine.

and -1 because a method name is not a method itself.
Symbol#to_proc is the limit I can accept.

I completely agree on this point. I want something explicit, not magic.

I agree as well. -1 on Roger's suggestion.

--
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

=end

Updated by ujihisa (Tatsuhiro Ujihisa) over 15 years ago Actions #4

  • Status changed from Open to Assigned
  • Assignee set to matz (Yukihiro Matsumoto)

=begin

=end

Updated by mame (Yusuke Endoh) over 15 years ago Actions #5

  • Status changed from Assigned to Rejected

=begin
Hi,

This ticket got four -1s, and there is no rebuttal.
So I close this ticket.

FYI, matz stated the rationale (in Japanese). [ruby-dev:32692]
He thought that "inject with Symbol" directly expressed the
intention of Array#inject, and that "map with Symbol" did not.
But he also said he might change of heart in the future.
I advise you guys to lobby matz patiently :-)

--
Yusuke Endoh
=end

Actions

Also available in: PDF Atom