Oppinions on map vs collect


#1

I’ve been using collect in all my programs up till now, and I recently
discovered that the map function is equivalent. My question is, (and I
know that it really doesn’t matter), which is more correct to use if
you’re trying to stick to doing things ruby’s way? What do people on
this newsgroup generally prefer using?

Thanks in advance for you oppinions.


#2

I prefer map, since to me that’s what it does.

Smalltalk (the granddaddy of ruby) has a method called ‘collect’
that does the same thing.


#3

Gary W. wrote:

I’ve been using collect in all my programs up till now, and I recently
discovered that the map function is equivalent. My question is, (and I
know that it really doesn’t matter), which is more correct to use if
you’re trying to stick to doing things ruby’s way? What do people on
this newsgroup generally prefer using?

Thanks in advance for you oppinions.

I usually use #map if I want to collect the return values generated from
calling a method with each item in the enumerable as an argument:

results = arr.map { |item| process(item) }

I use #collect when I want to collect attributes from each item in the
enumerable:

names = contacts.collect { |contact| contact.name }

This is just what seems logical to me; I’m not aware of any real
convention on the matter, though it may be a good idea.

Cheers,
Daniel


#4

On 05/12/05, Daniel S. removed_email_address@domain.invalid wrote:

I usually use #map if I want to collect the return values generated from
calling a method with each item in the enumerable as an argument:

results = arr.map { |item| process(item) }

I use #collect when I want to collect attributes from each item in the
enumerable:

names = contacts.collect { |contact| contact.name }

I like that convention. Assuming that it’s too late for Matz to
re-purpose either function name, I’ll start using that myself.

Thanks,

Matt


#5

Daniel S. wrote:

calling a method with each item in the enumerable as an argument:

Cheers,
Daniel

Heh, I could’ve written that a lot clearer, but I’m way too wasted to do
so.


#6

Matt M. wrote:

I like that convention. Assuming that it’s too late for Matz to
re-purpose either function name, I’ll start using that myself.

Thanks,

Matt


Matt M. :: http://matt.blogs.it/

Muahahaha, my evil plan to take over the world has begun! Soon, all will
bow to my will and… wait, is this on? Crap!


#7

On 12/5/05, Daniel S. removed_email_address@domain.invalid wrote:

Muahahaha, my evil plan to take over the world has begun! Soon, all will
bow to my will and… wait, is this on? Crap!

Too late, there are already evil programmers:
http://netevil.org/wiki.php?PlansForWorldDomination

Regards,
Jason
http://blog.casey-sweat.us/


#8

Jason Sweat wrote:

Jason
http://blog.casey-sweat.us/

God damn it! There’s always someone who’s thought of doing everything
before me!

But does his plan include pickles and nude photographs of Jon Steward,
huh?! I don’t think so!! Muahahahahahahaha!!!

Evil Cheers,
Dr. Daniel “Gates” Schierbeck