Here's how the counter closure works in practice:
c1 := counter()
c2 := counter()
fmt.Println(c1()) // 1
fmt.Println(c1()) // 2
fmt.Println(c2()) // 1 (separate count)
Each closure has its own count variable. Calling c1 doesn't affect c2's count. This pattern is useful for creating generators, iterators, and functions that need to remember state between calls.