Was ist ein „Yield Return“ -Äquivalent in der Programmiersprache D?

Hier ist ein einfacher Generator in C #.

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

Wie schreibe ich einen ähnlichen Generator inDigital Mars D?

(Die Frage bezieht sich auf dasyield return Erklärung

Vielen Dank

Aktualisieren. Das ist interessant. Da ich gerade eine mathematische Sequenz generiere, benutze ichWiederholun kann eine gute Option sein.

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); 
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage