On 2/16/07, Gregory Brown <gregory.t.brown / gmail.com> wrote: > On 2/16/07, Stefan Rusterholz <apeiros / gmx.net> wrote: > > Yukihiro Matsumoto wrote: > > > Hi, > > > > > > In message "Re: Oppinions on RCR for dup on immutable classes" > > > on Fri, 16 Feb 2007 08:55:12 +0900, "Phrogz" <gavin / refinery.com> > > > writes: > > > > > > |That's a statement of fact, but doesn't explain *why* it's a problem, > > > |or (important for an RCR) why it needs to be fixed in the core of the > > > |language. > > > | > > > |What is the use case that is prevented by the problem? What does it > > > |make inconvenient? Why should it be changed? > > > > > > Seconded. It pretty trivial for us core developers to make dup for > > > immutable objects to return themselves, but _I_ don't understand why > > > it is needed. I assume obj.object_id != obj.dup.object_id, and see no > > > good reason enough to break the assumption. > > > > > > matz. > > > > That's why I have 2 suggestions. The issue arises when you don't know > > what you dup. > > Under the aspect that obj.object_id should always be == > > obj.dup.object_id the first suggestion > > of removing dup from those classes would be more appropriate. > > To me it seems inconsequential to implement a method with it only > > raising an Exception. > > That makes it impossible to check if your object doesn't actually > > implement dup (e.g. via > > respond_to?). To me it seems that it should either be an implementation > > detail that > > those classes can't really be duped (ie. return self) or expose that > > transparently (not implement dup). > > >> a = 3 > => 3 > >> b = a.dup rescue a > => 3 > >> b > => 3 > > What's so bad about that? > > I would ask the question: Why do you dup a? The answer is, I presume, because I will modify the duplicate and I do not want to modify the original. ok so let us follow our code b= a.dup rescue a ... b.mutating_method what will happen now? Cheers Robert -- We have not succeeded in answering all of our questions. In fact, in some ways, we are more confused than ever. But we feel we are confused on a higher level and about more important things. -Anonymous