David Hopwood wrote: > When people talk > about "types" being associated with values in a "latently typed" or > "dynamically typed" language, they really mean *tag*, not type.
I don't think that's true. Maybe /some/ people do confuse the two, but I am certainly a counter-example ;-) The tag (if any) is part of the runtime machinery (or, if not, then I don't understand what you mean by the word), and while that is certainly a reasonably approximation to the type of the object/value, it is only an approximation, and -- what's more -- is only an approximation to the type as yielded by one specific (albeit abstract, maybe even hypothetical) type system. If I send #someMessage to a proxy object which has not had its referent set (and assuming the default value, presumably some variant of nil, does not understand #someMessage), then that's just as much a type error as sending #someMessage to a variable holding a nil value. If I then assign the referent of the proxy to some object which does understand #someMessage, then it is not a type error to send #someMessage to the proxy. So the type has changed, but nothing in the tag system of the language implementation has changed. -- chris -- http://mail.python.org/mailman/listinfo/python-list