From: matz@... (Yukihiro Matsumoto) Date: 2000-11-28T23:22:04+09:00 Subject: [ruby-talk:6604] Re: Question on sort! Hi, In message "[ruby-talk:6601] Re: Question on sort!" on 00/11/28, Dave Thomas 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.