関係演算子
多くの現代的なプログラミング言語において、オブジェクトやデータ構造は参照を通じてアクセスされる。そのような言語では、2種類の異なる等価性を判定する必要性が生じる:
物理的な等価 - 2つの参照が同じオブジェクトを参照しているかどうか
構造的な等価 - 2つの参照が参照するオブジェクトがある意味において(たとえば内容が同じであるなど)等しいかどうか 浅い等価判定(対象オブジェクトの持つ各メンバについて等価性を判定する) 深い等価判定(対象オブジェクトの持つ各メンバに加えて、対象オブジェクトから参照できる全てのオブジェクト各メンバについても等価性を判定する)
通常、前者の等価性は後者の等価性を含意しているが(自身に等しくないような NaN のようなものは除く)、逆は必ずしも真ではない。たとえば、2つの文字列オブジェクトは別個のオブジェクトであるかもしれない(前者の意味では等しくない)が、同じ文字の並びを持ちうる(後者の意味で等しい)。