private static void MkSequence(ICollection <T> seq, T m, T n, IncDelegate inc) { if (m.CompareTo(n) > 0) { // m>n return; } var m1 = inc(m); seq.Add(m); MkSequence(seq, m1, n, inc); }
public static void Producer(BlockingCollection <T> output, T from, T to, IncDelegate inc /* int seed */) { Console.WriteLine("Producer running ... "); var items = new List <T>(); MkSequence(items, from, to, inc); try { foreach (T item in items) { output.Add(item); } } finally { output.CompleteAdding(); } }
public IDGenerator(IncDelegate inc) { Inc = inc; }