無限生成器有什麼聰明用途?我看過很多看起來很瑣碎的例子,如「列出所有偶數」,但我認爲必須有其他人對現實世界的場景更具適用性。具體的例子(支持生成器的任何語言)讚賞!什麼是一些有用或有趣的無限生成器?
我會給一個簡單的樣本作爲答案。
無限生成器有什麼聰明用途?我看過很多看起來很瑣碎的例子,如「列出所有偶數」,但我認爲必須有其他人對現實世界的場景更具適用性。具體的例子(支持生成器的任何語言)讚賞!什麼是一些有用或有趣的無限生成器?
我會給一個簡單的樣本作爲答案。
查看http://rosettacode.org/wiki/Hamming_numbers#Haskell上的Haskell代碼;使用懶列表(有點像生成器)以創造性的方式列出所有漢明數字。
簡單的例子:收率斐波那契數每次一個(沒有上溢檢查,在C#):
public static IEnumerable<double> Fibonacci()
{
double n_minus2 = 1;
double n_minus1 = 1;
yield return n_minus2;
yield return n_minus1;
while(true)
{
double n = n_minus2 + n_minus1;
yield return n;
n_minus2 = n_minus1;
n_minus1 = n;
}
}
OP要求發電機「對現實世界的情景具有更大的適用性」。 – delnan 2011-02-09 20:12:10
@delnan - 我是OP,這就是我說我會舉例說明的例子。 – 2011-02-09 20:14:52
甲隨機發生器可能被認爲是巧妙地利用。
stackoverflow.com的所有無主題問題的列表。 – bmargulies 2011-02-09 20:03:57