public static IEnumerable <T> GetSequence(T first, T second, int length, CreateNonStaticCoefSequence seqCreator) { if (length <= 0) { throw new ArgumentOutOfRangeException(nameof(length)); } if (seqCreator == null) { throw new ArgumentNullException(nameof(seqCreator)); } return(GetSequenceBasis(first, second, length, seqCreator)); }
private static IEnumerable <T> GetSequenceBasis(T first, T second, int length, CreateNonStaticCoefSequence seqCreator) { T temp; for (int i = 0; i < length; i++) { yield return(first); temp = second; second = seqCreator.Invoke(first, second); first = temp; } }