What is Expressiveness in a Computer Language

Matthias Blume find at my.address.elsewhere
Wed Jun 21 11:53:25 EDT 2006


"Marshall" <marshall.spight at gmail.com> writes:

> Torben Ægidius Mogensen wrote:
>>
>> That's not true.  ML has variables in the mathematical sense of
>> variables -- symbols that can be associated with different values at
>> different times.  What it doesn't have is mutable variables (though it
>> can get the effect of those by having variables be immutable
>> references to mutable memory locations).
>
> While we're on the topic of terminology, here's a pet peeve of
> mine: "immutable variable."
>
> immutable = can't change
> vary-able = can change
>
> Clearly a contradiction in terms.

No, it is not a contradiction.  See the mathematical usage of the word
"variable".  Immutable variables can stand for different values at
different times, even without mutation involved, usually because they
are bound by some construct such as lambda.

> If you have a named value that cannot be updated, it makes
> no sense to call it "variable" since it isn't *able* to *vary.*

Mutation is not the only way for an expression to evaluate to
different values over time.



More information about the Python-list mailing list