0

无限生成器有哪些巧妙的用途?我见过很多看似微不足道的例子,比如“列出所有偶数”,但我认为肯定还有其他更适用于现实世界场景的例子。具体示例(使用任何支持生成器的语言)表示赞赏!

我将给出一个简单的示例作为答案。

4

3 回答 3

1

随机生成器可能被认为是聪明的使用。

于 2011-02-09T20:09:18.377 回答
1

查看http://rosettacode.org/wiki/Hamming_numbers#Haskell上的 Haskell 代码;它以创造性的方式使用惰性列表(有点像生成器)来列出所有汉明数。

于 2011-02-09T20:15:57.223 回答
0

简单的例子:一次产生一个斐波那契数(没有溢出检查,在 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;
    }
}
于 2011-02-09T20:00:54.780 回答