Hi,

In message "[ruby-talk:6601] Re: Question on sort!"
    on 00/11/28, Dave Thomas <Dave / thomases.com> writes:

|> This is very preliminary behavior following
|> a-bang-method-returns-nil-if-it-does-not-modify-the-recevier
|> principle.  The behavior shall be more thorough in the future.
|
|Although I see the reason for returning nil on methods such as gsub!,
|is there really any practical reason for doing so on sort! or
|reverse! ? This seems to me to be more of an inconvenience than a help, 
|and I'm not sure that any program would have a use for the test.|
|However, I can see a lot of potential problems with programs that try
|to be efficient and sort (or reverse) in place.
|
|   ary.sort!.reverse!.each {...
|
|It works fine 99.999% of the time, but occasionally fails with some
|message about some undefined method and nil...
|
|Perhaps we're extending the wrong principle here. Just because _some_
|! methods return nil, should all of them?

OK, OK.  Let's discuss.

The principle above have both pro and con.

  (+) consistency.
  (-) returning nil somtimes breaks method chains.

The latter can be avoided if one follows the no-bang-method-chain
rule.  But I don't force you to agree with me (yet ;-).

							matz.