Что такое эквивалент «yield return» в языке программирования D?

Вот простой генератор на C #.

    IEnumerable Foo()
    {
        int a = 1, b = 1;
        while(true)
        {
            yield return b;
            int temp = a + b;
            a = b;
            b = temp;
        }
    }

Как мне написать аналогичный генератор в Digital Mars D?

(Вопрос в yield return )

Спасибо!


Обновление. Это интересно. Поскольку я просто генерирую математическую последовательность, использование повторения может быть хорошим вариантом.

auto fib = recurrence!("a[n-1] + a[n-2]")(1, 1);

foreach (e; take(fib, 10)) // <- prints first ten numbers from the sequence
{ 
    writeln(e); 
}

26
задан Lurkeroid 5 October 2010 в 16:45
поделиться