From: ara.t.howard@... Date: 2007-02-18T01:42:28+09:00 Subject: Re: Oppinions on RCR for dup on immutable classes On Sun, 18 Feb 2007, Stefan Rusterholz wrote: > Care to explain why you chose defining a method with the sole purpose of > raising an exception over removing the method instead? yes - for illustration ;-) a simpler example harp:~ > cat a.rb require 'singleton' a = Object.new.instance_eval{ @x = 42 and self } p a.dup a.instance_eval{ class << self; include Singleton; end } p a.dup harp:~ > ruby a.rb # /home/ahoward//lib/ruby/1.8/singleton.rb:71:in `dup': can't dup instance of singleton Object (TypeError) from a.rb:7 this is a side effect of strong dynamic type systems: the interpreter/compiler cannot know until runtime if a methods signature makes sense becaues there are an infinite variety of ways the semantics of a msg sent to an object might change betweent two transmissions to the same object. if you don't like this there are two choices: - use language with a strong static type system. this rules out python, java, c++, c, perl, lisp, and smalltalk - dispair regards. -a -- we can deny everything, except that we have the possibility of being better. simply reflect on that. - the dalai lama