Alex Rivera | Logout

What is the difference between an Iterator and a Generator?

Asked 2009-06-20T21:13:09.377
35

What is the difference between an Iterator and a Generator?

Edit
Report

1 Answer

5

A generator is an implementation of an iterator. It is typically a routine that yields multiple values to its caller as opposed to just one.

In c#

// yield-example.cs
using System;
using System.Collections;
public class List
{
    public static IEnumerable Power(int number, int exponent)
    {
        int counter = 0;
        int result = 1;
        while (counter++ < exponent)
       {
            result = result * number;
            yield return result;
    }
}

static void Main()
{
    // Display powers of 2 up to the exponent 8:
    foreach (int i in Power(2, 8))
    {
        Console.Write("{0} ", i);
    }
}
}

See Wikipedia's entry

answered 2009-06-20T21:20:01.717

Your Answer