Rob Thorpe <[EMAIL PROTECTED]> wrote: > I'm not talking about correctness, I'm talking about typing. >
Since you wrote that, I've come to understand that you meant something specific by "property" which I didn't understand at first. From my earlier perspective, it was obvious that correctness was a property of a value. I now realize that you meant a property that's explicitly associated with the value and plays a role in determining the behavior of the language. Sorry for the confusion. > No, that isn't what I said. What I said was: > "A language is latently typed if a value has a property - called it's > type - attached to it, and given it's type it can only represent values > defined by a certain class." No, to answer Andreas' concern, you would only need to say: ... if a value has a property - called it's type - attached to it, and the language semantics guarantees that only values defined by a certain class may have that same property attached. > Easy, any statically typed language is not latently typed. I'm actually not sure I agree with this at all. I believe that reference values in Java may be said to be latently typed. This is the case because each reference value (except null, which may be tested separately) has an explicit property (called its "class", but surely the word doesn't make any difference), such that the language semantics guarantees that only a certain class of values may have that same property, and the property is used to determine behavior of the language in many cases (for example, in the case of type-based polymorphism, or use of Java's instanceof operator). Practically all class-based OO languages are subject to similar consideration, as it turns out. I'm unsure whether to consider explicitly stored array lengths, which are present in most statically typed languages, to be part of a "type" in this sense or not. -- Chris Smith - Lead Software Developer / Technical Trainer MindIQ Corporation -- http://mail.python.org/mailman/listinfo/python-list