英語版
このページの英語版を見る

std.algorithm

このパッケージは、シーケンスの処理に重点を置いた汎用アルゴリズムを実装する。 これらの関数によって処理されるシーケンスは、範囲ベースのインターフェイスを定義する。 範囲 に関するリファレンスおよび 範囲に関するチュートリアルも参照すること。
アルゴリズムは以下のサブモジュールに分類される。
このパッケージの多くの関数は、述語でパラメータ化されている。 述語は、任意の適切なコール可能な型 (関数、デリゲート、ファンクタ、またはラムダ)または コンパイル時の文字列である。文字列は、合法的な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);                   // 述語はなく、"a < b"は暗黙的である