Mike Meyer wrote:

Richard Blackwood <[EMAIL PROTECTED]> writes:



Robert Kern wrote:


Richard Blackwood wrote:


To All:

  Folks, I need your help. I have a friend who claims that if I write:

foo = 5

then foo is NOT a variable, necessarily. If you guys can define for
me what a variable is and what qualifications you have to back you,
I can pass this along to, hopefully, convince him that foo is
indeed a variable.


None of us can do that unless you tell us what he thinks the word
"variable" means. The terminology is a bit fluid. I suspect that
your friend applying a somewhat restricted notion of "variable" that
coincides with the behavior of variables in some other language.



Indeed, this language is math. My friend says that foo is a constant
and necessarily not a variable. If I had written foo = raw_input(), he
would say that foo is a variable. Which is perfectly fine except that
he insists that since programming came from math, the concept of
variable is necessarily the identical. This can not be true. For
example, I may define foo as being a dictionary, but I can not do this
within math because there is no concept of dictionaries within
mathematics; yet foo is a variable, a name bound to a value which can
change.



Wrong on two counts.

First, new disciplines often redefine words to mean something
different than the disciplines they were derived from. Variable is a
good example of that. In math, a variable is a placeholder in an (a
system of) equation(s), and will have associated with it a (possibly
empty) set of values that satisfy the equation(s).


Not merely a placeholder, right? A variable in math is a 'placeholder' for a dynamic value, one which can or does change. If one can graph the movement (change) of foo, foo is a variable within that scope. For example:

foo = 5
foo = 6

I can graph foo's movement/change. It can thus be considered a variable within mathematics. If I write:

foo = 5

I can graph this but it will merely be a static point, a constant. Constants are not variables because they do not change, they do not "vary" in content.

In programming, a
variable holds a value of some kind. As you point out, the value may
be complicated, in that it holds one or more objects.


Indeed.

In math, if you say "foo = 5", foo is a variable, with a single value
(5) that satisfies the equation. In Python, if you say "foo = 5", foo
is a variable, that currently references the value 5.


He would argue strongly against your notion of variable. In the statement "foo = 5", foo is constant. He would thus argue that foo is a constant and not a variable (regardless of whether you change foo's value in subsequent statements).

...

<mike



-- http://mail.python.org/mailman/listinfo/python-list

Reply via email to