Marshall <[EMAIL PROTECTED]> wrote: +--------------- | Anton van Straaten wrote: | > 3. A really natural term to refer to types which programmers reason | > about, even if they are not statically checked, is "latent types". It | > captures the situation very well intuitively, and it has plenty of | > precedent -- e.g. it's mentioned in the Scheme reports, R5RS and its | > predecessors, going back at least a decade or so (haven't dug to check | > when it first appeared). | | Can you be more explicit about what "latent types" means? | I'm sorry to say it's not at all natural or intuitive to me. | Are you referring to the types in the programmers head, | or the ones at runtime, or what? +---------------
Here's what the Scheme Standard has to say: http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-4.html 1.1 Semantics ... Scheme has latent as opposed to manifest types. Types are assoc- iated with values (also called objects) rather than with variables. (Some authors refer to languages with latent types as weakly typed or dynamically typed languages.) Other languages with latent types are APL, Snobol, and other dialects of Lisp. Languages with manifest types (sometimes referred to as strongly typed or statically typed languages) include Algol 60, Pascal, and C. To me, the word "latent" means that when handed a value of unknown type at runtime, I can look at it or perform TYPE-OF on it or TYPECASE or something and thereby discover its actual type at the moment[1], whereas "manifest" means that types[2] are lexically apparent in the code. -Rob [1] I added "at the moment", since I remembered that in Common Lisp one may change the type of a value at runtime, specifically, a CLOS instance may change type "out from under you" if someone performs a CHANGE-CLASS on it or redefines its CLASS definition. [Though maybe the latter is more a change of the *type* itself rather than a change of the *object's* type per se.] [2] Usually of a variables or locations, but sometimes of expressions. ----- Rob Warnock <[EMAIL PROTECTED]> 627 26th Avenue <URL:http://rpw3.org/> San Mateo, CA 94403 (650)572-2607 -- http://mail.python.org/mailman/listinfo/python-list