Comment by dilap
(Side note, Go did fix scoping of captured variables in for,range loops, which was a back-incompat change, but they justified it by emperically showing it fixed more bugs than it caused (very reasonable). C# made the same change w/ the same justification earlier, which was inspiration for Go.)
And this issue was known from lisps for 50+ years.. if only we could somehow learn from other languages' mistakes.