Этот пакет реализует типовые алгоритмы, ориентированные на обработку последовательностей. Последовательности, обрабатываемые этими функциями, определяются интерфейсами, основанными на диапазонах. Смотрите также
Документацию по диапазонам и
Урок о диапазонах.
Алгоритмы распределены по следующим подмодулям:
Множество функций в этом пакете параметризованы
предикатом.
Предикатом может быть любой подходящий вызываемый тип (функция, делегат,
функтор, или lambda), или строка времени компиляции.
Строка может состоять из
любого легального D-выражения, которое использует символ
a
(для одноаргументных функций) или символы
a и
b (для двухаргументных функций). Эти имена НЕ пересекаются с другими идентификаторами-омонимами в коде пользователя, поскольку они применяются в другом контексте. По умолчанию для всех двухаргументных предикатов сравнения используется
"a == b" для неупорядоченных операций, и
"a < b" для упорядоченных операций.
Пример:
int[] a = ...;
static bool greater(int a, int b)
{
return a > b;
}
sort!greater(a); sort!((a, b) => a > b)(a); sort!"a > b"(a); sort(a);