Методы расширения для sequence of T

function Print<T>(Self: sequence of T; delim: string): sequence of T; extensionmethod;
        Выводит последовательность на экран, используя delim в качестве разделителя
function Print<T>(Self: sequence of T): sequence of T; extensionmethod;
        Выводит последовательность на экран, используя пробел в качестве разделителя
function Println<T>(Self: sequence of T; delim: string): sequence of T; extensionmethod;
        Выводит последовательность на экран, используя delim в качестве разделителя, и переходит на новую строку
function Println<T>(Self: sequence of T): sequence of T; extensionmethod;
        Выводит последовательность на экран, используя пробел качестве разделителя, и переходит на новую строку
function WriteLines(Self: sequence of string; fname: string): sequence of string; extensionmethod;
        Выводит последовательность строк в файл
function JoinIntoString<T>(Self: sequence of T; delim: string): string; extensionmethod;
        Преобразует элементы последовательности в строковое представление, после чего объединяет их в строку, используя delim в качестве разделителя
function JoinIntoString<T>(Self: sequence of T): string; extensionmethod;
        Преобразует элементы последовательности в строковое представление, после чего объединяет их в строку, используя пробел в качестве разделителя
procedure ForEach<T>(Self: sequence of T; action: T -> ()); extensionmethod;
        Применяет действие к каждому элементу последовательности
procedure ForEach<T>(Self: sequence of T; action: (T,integer) -> ()); extensionmethod;
        Применяет действие к каждому элементу последовательности, зависящее от номера элемента
function Sorted<T>(Self: sequence of T): sequence of T; extensionmethod;
        Возвращает отсортированную по возрастанию последовательность
function SortedDescending<T>(Self: sequence of T): sequence of T; extensionmethod;
        Возвращает отсортированную по убыванию последовательность
function ToHashSet<T>(Self: sequence of T): HashSet<T>; extensionmethod;
        Возвращает множество HashSet по данной последовательности
function ToSortedSet<T>(Self: sequence of T): SortedSet<T>; extensionmethod;
        Возвращает множество SortedSet по данной последовательности
function MinBy<T, TKey>(Self: sequence of T; selector: T -> TKey): T; extensionmethod;
        Возвращает элемент последовательности с минимальным значением ключа
function MaxBy<T, TKey>(Self: sequence of T; selector: T -> TKey): T; extensionmethod;
        Возвращает элемент последовательности с максимальным значением ключа
function TakeLast<T>(Self: sequence of T; count: integer): sequence of T; extensionmethod;
        Возвращает последние count элементов последовательности
function Cartesian<T,T1>(Self: sequence of T; b: sequence of T1): sequence of (T,T1); extensionmethod;
        Декартово произведение последовательностей
function Cartesian<T,T1,T2>(Self: sequence of T; b: sequence of T1; func: (T,T1)->T2): sequence of T2; extensionmethod;
        Декартово произведение последовательностей
function SplitAt<T>(Self: sequence of T; ind: integer): (sequence of T,sequence of T); extensionmethod;
        Разбивает последовательности на две в позиции ind
function Partition<T>(Self: sequence of T; cond: T->boolean): (sequence of T,sequence of T); extensionmethod;
        Разделяет последовательности на две по заданному условию
function Partition<T>(Self: sequence of T; cond: (T,integer)->boolean): (sequence of T,sequence of T); extensionmethod;
        Разделяет последовательности на две по заданному условию, в котором участвует индекс
function ZipTuple<T,T1>(Self: sequence of T; a: sequence of T1): sequence of (T,T1); extensionmethod;
        Объединяет две последовательности в последовательность двухэлементных кортежей
function ZipTuple<T,T1,T2>(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T,T1,T2); extensionmethod;
        Объединяет три последовательности в последовательность трехэлементных кортежей
function ZipTuple<T,T1,T2,T3>(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T,T1,T2,T3); extensionmethod;
        Объединяет четыре последовательности в последовательность четырехэлементных кортежей
function UnZipTuple<T,T1>(Self: sequence of (T,T1)): (sequence of T,sequence of T1); extensionmethod;
        Разъединяет последовательность двухэлементных кортежей на две последовательности
function UnZipTuple<T,T1,T2>(Self: sequence of (T,T1,T2)): (sequence of T,sequence of T1,sequence of T2); extensionmethod;
        Разъединяет последовательность трехэлементных кортежей на три последовательности
function UnZipTuple<T,T1,T2,T3>(Self: sequence of (T,T1,T2,T3)): (sequence of T,sequence of T1,sequence of T2,sequence of T3); extensionmethod;
        Разъединяет последовательность четырехэлементных кортежей на четыре последовательности
function Interleave<T>(Self: sequence of T; a: sequence of T): sequence of T; extensionmethod;
        Чередует элементы двух последовательностей
function Interleave<T>(Self: sequence of T; a,b: sequence of T): sequence of T; extensionmethod;
        Чередует элементы трех последовательностей
function Interleave<T>(Self: sequence of T; a,b,c: sequence of T): sequence of T; extensionmethod;
        Чередует элементы четырех последовательностей
function Numerate<T>(Self: sequence of T): sequence of (integer,T); extensionmethod;
        Нумерует последовательность с единицы
function Numerate<T>(Self: sequence of T; from: integer): sequence of (integer,T); extensionmethod;
        Нумерует последовательность с номера from
function Tabulate<T,T1>(Self: sequence of T; F: T->T1): sequence of (T,T1); extensionmethod;
        Табулирует функцию последовательностью
function Pairwise<T>(Self: sequence of T): sequence of (T,T); extensionmethod;
        Превращает последовательность в последовательность пар соседних элементов
function Pairwise<T,Res>(Self: sequence of T; func:(T,T)->Res): sequence of Res; extensionmethod;
        Превращает последовательность в последовательность пар соседних элементов, применяет func к каждой паре полученных элементов и получает новую последовательность
function Batch<T>(Self: sequence of T; size: integer): sequence of sequence of T; extensionmethod;
        Разбивает последовательность на серии длины size
function Batch<T,Res>(Self: sequence of T; size: integer; proj: Func<IEnumerable<T>,Res>): sequence of Res; extensionmethod;
        Разбивает последовательность на серии длины size и применяет проекцию к каждой серии
function Slice<T>(Self: sequence of T; from,step: integer): sequence of T; extensionmethod;
        Возвращает срез последовательности от номера from с шагом step
function Slice<T>(Self: sequence of T; from,step,count: integer): sequence of T; extensionmethod;
        Возвращает срез последовательности от номера from с шагом step длины не более count