
Skip Montanaro wrote:
I see a couple problems:
* Would you be required to use := at each assignment or just the first?
Just the first; "a = 2" still means "a is local to this scope".
All the toy examples we pass around are very simple, but it seems that the name would get assigned to more than once, so the programmer might need to remember the same discipline all the time. It seems that use of x := 2 and x = 4 should be disallowed in the same function so that the compiler can flag such mistakes.
I don't see it as a mistake. := would mean: "bind to whichever scope the name is defined in", and that includes the current scope. I disagree with Alex when he says := should mean "I'm binding this name in NON-local scope".
* This seems like a statement which mixes declaration and execution.
How is that different from "regular" assignment? It mixes declaration and execution in the same way. Just