I need help

What is the difference between:

```
function a()
funcs = []
i = 1
for j=1:100
push!(funcs, (args...)->i)
i += 1
end
return funcs
end
b = a()
b[1]()
```

and

```
function c()
funcs = []
for i=1:100
push!(funcs, (args...)->i)
end
return funcs
end
d = c()
d[1]()
```

The first one returns 101 for every call of `b[x]()`

and the second one does the expected thing of `d[x]() = x`

I put it into a function to avoid global scope issues.

What I also find interesting is that the repl shows something like:

```
100-element Array{Any,1}:
#76 (generic function with 1 method)
#76 (generic function with 1 method)
#76 (generic function with 1 method)
```

for both of them which looks like it creates the same function over and over again? (Based on the name `#76`

).

@TheCedarPrince is also interested