ジェネレータって…

こんな感じかな?

function make_fib() {
  var a = 1;
  var b = 1;

  return function() {
    var buf = a;
    a = b;
    b = buf + b;
    return buf;
  }
}

var fib = make_fib();

for(var i=0; i<10; i++)
  print(fib());

状態を持つ関数はジェネレータなのかな…


make_fib()をなくせないかしらん?