Rob Warnock wrote: > Marshall <[EMAIL PROTECTED]> wrote: > > > > 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.
Hmmm. If I read the R5RS text correctly, it is simply doing the either/or thing that often happens with "static/dynamic" only using different terms. I don't see any difference between "latent" and "dynamic." Also, this phrase "types associated with values instead of variables" that I'm starting to see a lot is beginning to freak me out: the implication is that other languages have types associated with variables and not values, which doesn't describe anything I can think of. In your followup paragraph, you've contrasted runtime type introspection, vs. explicit type declarations, which seem orthorgonal to me. (Not that you said they weren't.) Marshall -- http://mail.python.org/mailman/listinfo/python-list