Lists Home |
Date Index |
7/8/02 9:50:18 AM, Joe English <email@example.com> wrote:
>Static type analysis may be necessary in the presence of overloaded
>operators, but I don't believe overloaded operators themselves are
>a priori necessary. Perl for example uses '<' for numeric comparisons
>and 'lt' for string comparisons.
And note that the choice of '<' or 'lt' is a choice of comparison metric (numerical order vs
lexicographic order), not a choice of operand type; it has absolutely nothing to do with how the
operands are represented as bits. In Perl, it's possible to treat a value as a number for some
purposes and as a string for others. Any "casting" takes place behind the scenes, in the innards of
the interpreter. The Perl programmer thinks "compare these two values according to this metric," not
"cast these values to this type and compare them." Note that in Perl, strings that don't begin with
digits are treated as zero for purposes of numeric comparison.