Методы расширения списков

function AdjacentFind<T>(Self: IList<T>; start: integer := 0): integer;
        Находит первую пару подряд идущих одинаковых элементов и возвращает индекс первого элемента пары. Если не найден, возвращается -1
function AdjacentFind<T>(Self: IList<T>; eq: (T,T)->boolean; start: integer := 0): integer;
        Находит первую пару подряд идущих одинаковых элементов, используя функцию сравнения eq, и возвращает индекс первого элемента пары. Если не найден, возвращается -1
procedure Fill<T>(Self: IList<T>; f: integer->T);
        Заполняет элементы массива или списка значениями, вычисляемыми по некоторому правилу
function IndexMax<T>(Self: List<T>; index: integer := 0): integer; where T: IComparable<T>;
        Возвращает индекс первого максимального элемента начиная с позиции index
function IndexMax<T>(Self: array of T; index: integer := 0): integer; where T: IComparable<T>;
        Возвращает индекс первого максимального элемента начиная с позиции index
function IndexMin<T>(Self: List<T>; index: integer := 0): integer; where T: IComparable<T>;
        Возвращает индекс первого минимального элемента начиная с позиции index
function IndexMin<T>(Self: array of T; index: integer := 0): integer; where T: IComparable<T>;
        Возвращает индекс первого минимального элемента начиная с позиции index
function LastIndexMax<T>(Self: List<T>; index: integer): integer; where T: IComparable<T>;
        Возвращает индекс последнего минимального элемента в диапазоне [0,index-1]
function LastIndexMax<T>(Self: array of T; index: integer): integer; where T: IComparable<T>;
        Возвращает индекс последнего минимального элемента в диапазоне [0,index-1]
function LastIndexMax<T>(Self: List<T>): integer; where T: IComparable<T>;
        Возвращает индекс последнего максимального элемента
function LastIndexMax<T>(Self: array of T): integer; where T: IComparable<T>;
        Возвращает индекс последнего максимального элемента
function LastIndexMin<T>(Self: List<T>; index: integer): integer; where T: IComparable<T>;
        Возвращает индекс последнего минимального элемента в диапазоне [0,index-1]
function LastIndexMin<T>(Self: array of T; index: integer): integer; where T: IComparable<T>;
        Возвращает индекс последнего минимального элемента в диапазоне [0,index-1]
function LastIndexMin<T>(Self: List<T>): integer; where T: IComparable<T>;
        Возвращает индекс последнего минимального элемента
function LastIndexMin<T>(Self: array of T): integer; where T: IComparable<T>;
        Возвращает индекс последнего минимального элемента
function RemoveLast<T>(Self: List<T>): List<T>;
        Удаляет последний элемент. Если элементов нет, генерирует исключение
procedure Replace<T>(Self: IList<T>; oldValue, newValue: T);
        Заменяет в массиве или списке все вхождения одного значения на другое
function Shuffle<T>(Self: List<T>): List<T>;
        Перемешивает элементы списка случайным образом
function Slice<T>(Self: List<T>; from, step: integer): List<T>;
        Возвращает срез списка от индекса from с шагом step
function Slice<T>(Self: List<T>; from, step, count: integer): List<T>;
        Возвращает срез списка от индекса from с шагом step длины не более count
procedure Transform<T>(Self: IList<T>; f: T->T);
        Преобразует элементы массива или списка по заданному правилу
procedure Transform<T>(Self: IList<T>; f: (T,integer)->T);
        Преобразует элементы массива или списка по заданному правилу