Voici un générateur simple en C#.Qu'est-ce qu'un équivalent «yield return» dans le langage de programmation D?
IEnumerable<int> Foo()
{
int a = 1, b = 1;
while(true)
{
yield return b;
int temp = a + b;
a = b;
b = temp;
}
}
Comment puis-je écrire un générateur similaire dans Digital Mars D?
(La question est au sujet de la déclaration de retour de rendement )
Merci!
Mise à jour. C'est intéressant. Comme je ne fais que générer une séquence mathématique, utiliser recurrence peut être une bonne option.
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);
}
Notez que vous devriez être capable d'écrire fib.take (10) car maintenant la syntaxe de l'appel de fonction uniforme a été améliorée. – Trass3r
Même trouvé l'article: http://www.drdobbs.com/blogs/cpp/232700394 – Trass3r