"Rob Thorpe" <[EMAIL PROTECTED]> writes: > Andreas Rossberg wrote: >> Rob Thorpe wrote: >> >> >> >>>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." >> >> >> >>"it [= a value] [...] can [...] represent values"? >> > >> > ??? >> >> I just quoted, in condensed form, what you said above: namely, that a >> value represents values - which I find a strange and circular definition. > > Yes, but the point is, as the other poster mentioned: values defined by > a class. > For example, in lisp: > "xyz" is a string, #(1 2 3) is an array, '(1 2 3) is a list, 45 is a > fixed-point number. > Each item that can be stored has a type, no item can be stored without > one. The types can be tested. Most dynamic typed languages are like > that.
Your "types" are just predicates. > Compare this to an untyped language where types cannot generally be > tested. You mean there are no predicates in untyped languages? >> They all have - the whole purpose of a type system is to ensure that any >> expression of type T always evaluates to a value of type T. > > But it only gaurantees this because the variables themselves have a > type, the values themselves do not. Of course they do. > Most of the time the fact that the > variable they are held in has a type infers that the value does too. > But the value itself has no type, in a C program for example I can take > the value from some variable and recast it in any way I feel and the > language cannot correct any errors I make because their is no > information in the variable to indicate what type it is. Casting in C takes values of one type to values of another type. >> So when you >> look at type systems formally then you certainly have to assign types to >> values, otherwise you couldn't prove any useful property about those >> systems (esp. soundness). > > Yes, but indirectly. No, this is usually done very directly and very explicitly. -- http://mail.python.org/mailman/listinfo/python-list