什么是有用或有趣的无限生成器?

时间:2011-02-09 19:58:08

标签: language-agnostic generator infinite-sequence

无限发电机的一些聪明用途是什么?我已经看到很多看似微不足道的例子,例如“列出所有偶数”,但我认为必须有其他人更适用于现实场景。具体的例子(支持发电机的任何语言)都很感激!

我会给出一个简单的样本作为答案。

3 个答案:

答案 0 :(得分:1)

随机生成器可能被认为是巧妙使用。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

琐碎的例子:一次产生一个Fibonacci数字(在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;
    }
}