Robert Kern wrote:
Fantastic, wikipedia deals precisely with the difference between variables in mathematics versus programming. However, he would never trust a definition from such an "unreputable" source. If you have any other sources I might direct him to...he maintains that the notion of foo being a variable where it's value is known (versus unknown) is illogical.Richard Blackwood wrote:
Kent Johnson wrote:
Richard Blackwood wrote:
Indeed, this language is math. My friend says that foo is a constant and necessarily not a variable.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.
Well, we mostly talk Python here, not math. In Python, if you say foo = 5 foo is a name bound to an immutable value.
If I had written foo = raw_input(), he would
say that foo is a variable.
That's funny. foo is still a name bound to an immutable (string) value. foo is no more or less variable than it was with foo = 5.
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.
Sounds like you are having a stupid and meaningless argument with your friend. What you call foo won't change what it is. He should learn Python, then he would understand the true zen of foo.
That is exactly how I feel about it. Foo is what it is. Variable, name bound to immutable value, etc., what we call it doesn't really change how I program, only how I communicate with other programmers (and mathematicians). Is the notion of variable not a fundamental concept in programming? Surely there must be an unambiguous definition I can relay to him.
Why should there be? Different programming languages have different models. In C, a variable corresponds to a memory slot. In Python, it's a just a name that can be bound to an object.
If you must, http://en.wikipedia.org/wiki/Variable
--
http://mail.python.org/mailman/listinfo/python-list