internal Relative <T> GetInversed() { var newRelative = new Relative <T>(); foreach (var item in this) { newRelative.Add(new Tuple <T>((item as IEnumerable <T>).Reverse())); } return(newRelative); }
internal Relative <T> Compose(Relative <T> other) { var newRelative = new Relative <T>(); foreach (var first in other) { foreach (var second in this) { if (first[1].CompareTo(second[0]) == 0) { newRelative.Add(new Tuple <T> { first[0], second[1] }); } } } return(newRelative); }
internal Relative <T> GetAddition() { var newRelative = new Relative <T>(); foreach (var item in universum) { foreach (var secondItem in universum) { if (!predicate(item, secondItem)) { newRelative.Add(new Tuple <T>() { item, secondItem }); } } } return(newRelative); }