ex12-01-8

ソース

// #@@range_begin(list1)
class FibonacciSequence {
  [Symbol.iterator]() {
    let a = 0, b = 1;
    return {
      next() {
        let rval = { value: b, done: false };
        b += a;
        a = rval.value;
        return rval;
      }
    };
  }
}
// #@@range_end(list1)

// #@@range_begin(list2)
const fib = new FibonacciSequence();
let i = 0;
for(let n of fib) {
  console.log(`${i+1}: ${n}`);
  if(++i > 99) break;
}
// #@@range_end(list2)