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