From: Wilson Bilkovich Date: 2008-08-02T00:37:39+09:00 Subject: [ruby-core:18053] Re: New array methods cycle, choice, shuffle (plus bug in cycle) On 8/1/08, David A. Black wrote: > Hi -- > > > On Fri, 1 Aug 2008, Charles Oliver Nutter wrote: > > > > Michael Neumann wrote: > > > > > For me as a non-native English speaker, #choice is clearer. > > > For me, #choose implies that *I* have to choose something, i.e. I would > > > expect that method #choose has a parameter, which it doesn't have. > > > Whereas #choice implies, that I have no choice, which is in some sense > > > true for this method, because I can't choose the element I want. > > > > > > So in contrast to Charles, I think, ary.choice produces a choose > > > operation internally :) > > > > > > > I think it's pretty standard to have imperative verb methods be addressed > to the object in question. IO#write is telling the IO object to write > something. Enumerable#map is telling the Enumerable to produce a new array > based on the results of eaching to your block. String#split tells the array > to split based on your criteria. In almost all cases where a verb is > specified, it's an order (or message, eh?) to the object in question. Choose > is the same. > > > > > If Python has "choice" to mean a random array element, then this is a > good opportunity for Ruby to be "a better Python" :-) > I would like to cast my vote (not that I get a vote, but you get the idea) for Array#sample. Unlike 'choice', it actually sounds useful to me.