| Ilya Zakharevich on Wed, 8 Nov 2000 15:58:26 -0500 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: grammar question ? |
On Wed, Nov 08, 2000 at 08:05:34PM +0100, Karim BELABAS wrote:
> It's not a generic assignment: it's actually deferred until the loop body
> is evaluated. And it works so that the loop index is automatically local to
> the loop, i.e is restored to its former value when the loop ends. After
>
> x = 0; for (x=1, 10, print(x))
>
> the value of x is 0.
Vaguely related note: I think it is quite easy to allow definition of
such *user-defined* constructs. The syntax may be like this:
for_squares(x==init,last,func()) = {
local(var_numbered(x));
local(n);
n = ceil(sqrt(x));
while( n^2<=last, set_var_numbered(x,n^2); n=n+1; eval(func) )
}
so that on entry x is set to be the variable number (or maybe it is
better to alias it?), and func set to the string value of the
corresponding argument...
Ilya