Rubyでクロージャ
こうやればいいのか。
def gen
x = 0;
return lambda {
puts x
x += 1
}
end
y1 = gen
y1.call #=> 0
y1.call #=> 1
y2 = gen
y2.call #=> 0
y1.call #=> 2
こうやればいいのか。
def gen
x = 0;
return lambda {
puts x
x += 1
}
end
y1 = gen
y1.call #=> 0
y1.call #=> 1
y2 = gen
y2.call #=> 0
y1.call #=> 2