6.18. kink/ORDER

<= 演算子、つまりop_leメソッドにもとづく全順序関係に関する機能。

<= 演算子

<= 演算子の実装は、オペランドの定義域の中のすべてのX, Y, Zについて、次を満たす全順序関係でなければならない。

• 反射律: X <= X

• 推移律: if X <= Y && Y <= Z then X <= Z

• 反対称律: if X <= Y && Y <= X then X == Y

• 狭義の連結律: X <= Y || Y <= X

6.18.1. ORDER.by($extract_key)

byは、ふたつの引数を抽出されたキーで順序付ける関数を戻す。つまり、 `{(:X :Y) extract_key(X) <= extract_key(Y) }` を戻す。

事前条件

$extract_keyは、引数ひとつを取る関数でなければならない。

例

6.18.2. ORDER.min(X Y)

minは、X <= YのときにXを、そうでないときにYを戻す。

事前条件

XとYに対して <= 演算子が定義されていなければならない。

例

6.18.3. ORDER.max(X Y)

maxは、X >= YのときにXを、そうでないときにYを戻す。

事前条件

XとYに対して <= 演算子が定義されていなければならない。

例