S
Sam Kong
Hello!
Since my last question about
closure(http://groups.google.com/group/comp...1683e/12e182a6ff493232?hl=en#12e182a6ff493232)
I am testing my understanding making some examples.
Here's some code:
def f name
x = 0
case name
when "one"
lambda {x += 1; puts x}
when "two"
lambda {puts x}
end
end
one = f "one"
two = f "two"
one.call
two.call
one.call
two.call
Result:
1
0
2
0
I expected the following.
1
1
2
2
I thought that x is shared between one and two but they don't seem to.
Or am I missing something?
Thanks.
Sam
Since my last question about
closure(http://groups.google.com/group/comp...1683e/12e182a6ff493232?hl=en#12e182a6ff493232)
I am testing my understanding making some examples.
Here's some code:
def f name
x = 0
case name
when "one"
lambda {x += 1; puts x}
when "two"
lambda {puts x}
end
end
one = f "one"
two = f "two"
one.call
two.call
one.call
two.call
Result:
1
0
2
0
I expected the following.
1
1
2
2
I thought that x is shared between one and two but they don't seem to.
Or am I missing something?
Thanks.
Sam