>
That would be very strange behavior though that has no equivalence in any other part of the language.How is it strange? When you declare your iteration variable, it unsets any existing definition of that variable if there is one, before it inserts the new variable. Why would anyone enter a loop and expect the iteration variable to have a value defined outside the loop?
Moreover, even if someone can find a reason why -- why make define the language around a need to support such badly designed programs.
> I'm afraid the behavior it has is the expected behavior.
Fine. s/expected/intuitive/g
> The problem isn't the language in this case.
Agreed. It's the people who designed it.
> These problems just aren't that bad.
This is my point: the individual issues are all workable. The real problem is that the language is maintained by people who have no idea how to design a language, frankly.