From: "Mills Thomas (app1tam)" Date: 2002-10-24T04:05:44+09:00 Subject: Re: Things That Newcomers to Ruby Should Know (10/16/02) It's not non-sensical. If it appeared that I mean for all objects to use append(), then I was not clear. Using append() was just an example. With numbers it might mean add_on(). With Strings it might mean Concat(). With Animals it might mean graft(). With TrainCars, it might mean hitch(). The point is, an object can have another object added to it. The fact that we do it easily with RealNumbers is only a cultural truism. It is not a stretch to think of graft() with an Animal. And so it is sensical. :-) (for non-english speakers, it is understandable). Drew > -----Original Message----- > From: Austin Ziegler [mailto:austin@halostatue.ca] > > But why does it really, REALLY mean that? Was there a > reason for doing > > this? Is it non-trivial to have '+=' mean 'append()'? > > It's non-sensical. << exists only as Array#<<, String#<<, and > IO#<< and means three different things. Array#<< is the same > as Array#push, IO#<< is similar to IO#puts, and String#<< is > the same as String#concat. Do you wish to create language > exceptions for three classes? How would 1.append(2) work (to > use your notation)? Why should there be exceptions to the > object/language model in this case?