c#中haskell中迭代函数的等价物是什么?

mit*_*ess 0 c# haskell

我们在haskell Prelude中有迭代函数

iterate :: (a -> a) -> a -> [a]
iterate f x == [x, f x, f (f x), ...]
Run Code Online (Sandbox Code Playgroud)

C#中的等价物是什么?

Lee*_*Lee 7

没有一个,但你可以写自己的:

public static IEnumerable<T> Iterate<T>(T seed, Func<T, T> step)
{
    while(true)
    {
        yield return seed;
        seed = step(seed);
    }
}
Run Code Online (Sandbox Code Playgroud)