yieldその後
結構、使えるようになってきた?
using System; using System.Collections.Generic; class Fib : IEnumerable [int] { mutable max = 0; public this (n : int) { max = n; } public GetEnumerator () : IEnumerator [int] { mutable (a, b) = (0, 1); while (b < max) { yield b; (a, b) = (b, a + b); } } } foreach (n in Fib (20)) Console.WriteLine (n); /* 1 1 2 3 5 8 13 */