Comment on Clojure core.async and Go: A Code ComparisonparentComments−hueyp13yThe i is scoped differently in clojure than in golang so it doesn't have the same potential pitfall. I think golang people consider their scoping here a mistake (and have tooling to check it?).−frou_dh13yC# had the exact same pitfall and it was recognised years ago. It's unfortunate that it made it in to Go.−shakesbeard13yDid they introduce a language solution for it in C#?−jared31413yC# 5.0 is changing the behavior of the loop variable to be logically inside the loop [0].[0] https://news.ycombinator.com/item?id=3477629−pcwalton13yThe Go race detector will generally catch this mistake at runtime.−VMG13yAlso see Javascript's IIFE: http://en.wikipedia.org/wiki/Immediately-invoked_function_ex...
Comments
The i is scoped differently in clojure than in golang so it doesn't have the same potential pitfall. I think golang people consider their scoping here a mistake (and have tooling to check it?).
C# had the exact same pitfall and it was recognised years ago. It's unfortunate that it made it in to Go.
Did they introduce a language solution for it in C#?
C# 5.0 is changing the behavior of the loop variable to be logically inside the loop [0].
[0] https://news.ycombinator.com/item?id=3477629
The Go race detector will generally catch this mistake at runtime.
Also see Javascript's IIFE: http://en.wikipedia.org/wiki/Immediately-invoked_function_ex...