无限发电机的一些聪明用途是什么?我已经看到很多看似微不足道的例子,例如“列出所有偶数”,但我认为必须有其他人更适用于现实场景。具体的例子(支持发电机的任何语言)都很感激!
我会给出一个简单的样本作为答案。
答案 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;
}
}