On Sep 10, 2007, at 21:34 , William Stein wrote:
> > On 9/10/07, Nikos Apostolakis <[EMAIL PROTECTED]> wrote: >> Is it possible to have the variables that appear in "for" loops and >> other such constructs to be "dummy" in the mathematical sence >> (probably the cs term is "local")? The current behavior, in which >> after the loop is completed the loop variable is _still_ set to the >> last value it assumed, is very confusing -- at least to me. For >> example, it took me some time to realize the mistake in the follow >> sequence of commands: >> >> f(x) = sin(x)/x >> for x in [1.0/2^i for i in range(1,15)]: >> print x, f(x) >> >> for x in [-1.0/2^i for i in range(1,15)]: >> print x, f(x) >> >> plot(f(x), -1, 1) >> >> I believe that a lot of mathematicians and students will be confused >> by this behavior. At least for the Calculus part I think that it >> would be a good idea to have a "mathematical for" in which the >> looping variable is automatically reset after the completion of the >> loop. IMHO, this is more in agreement with common mathematical >> practice. > > There is absolutely nothing that can be done in SAGE about this. > It's a design decision that was made in the Python programming > language, and we have to live with it so long as Python behaves > this way. This is part of using a mainstream language instead of > inventing our own. > > That said, I vaguely recall Guido van Rosum saying that he was > seriously considering changing this behavior in "Python 3000", > i.e., the version of Python that will seriously break backwards > compatibility. I have no idea what will really happen. Other than lots of code breaking :-} > I think the reason Python behaves as it does now with respect > to variables used in loops is that it is exactly how C behaves, or at > least how C behaved when Python was first written in the early > 1990's. I.e,. in (old) C you had: > > void foo() { > declare *all* variables here > > for (n=0; n<10; n++) > do something > > // now n is 10 > } This is the way C is defined. I'd be surprised if it would change. Justin -- Justin C. Walker, Curmudgeon-At-Large Director Institute for the Enhancement of the Director's Income -------- "Weaseling out of things is what separates us from the animals. Well, except the weasel." - Homer J Simpson -------- --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://sage.math.washington.edu/sage/ and http://sage.scipy.org/sage/ -~----------~----~----~----~------~----~------~--~---