Function EQUALP

UP


Function EQUALP

Function EQUALP

構文

equalp x y => generalized-boolean

引数と戻り値

x - オブジェクト
y - オブジェクト
generalized-boolean - generalized-boolean

定義

もしxyequalであればtrueを返却します。 あるいはそれらの要素がお互い同じ型であり、 下記に示す場合のときはtrueが返却されます。

equalpは、上記で明確に指定されたもの以外の どんなオブジェクトにも降りては行きません。 次の図は、前のリストを要約した情報です。 加えて、図にはequalpのふるまいの優先順位を載せており、 上に記載されているものの方が下のものより優先順位は高くなります。

ふるまい
number =を使用
character char-equalを使用
cons 降りて行く
bit vector 降りて行く
string 降りて行く
pathname equalと同じ
structure 降りて行く。上記の記載参照。
他のarray 降りて行く
hash table 降りて行く。上記の記載参照。
他のobject eqを使用

Figure 5-13. equalpのふるまいの要約と優先順位

例文

(equalp 'a 'b) =>  false
(equalp 'a 'a) =>  true
(equalp 3 3) =>  true
(equalp 3 3.0) =>  true
(equalp 3.0 3.0) =>  true
(equalp #c(3 -4) #c(3 -4)) =>  true
(equalp #c(3 -4.0) #c(3 -4)) =>  true
(equalp (cons 'a 'b) (cons 'a 'c)) =>  false
(equalp (cons 'a 'b) (cons 'a 'b)) =>  true
(equalp #\A #\A) =>  true
(equalp #\A #\a) =>  true
(equalp "Foo" "Foo") =>  true
(equalp "Foo" (copy-seq "Foo")) =>  true
(equalp "FOO" "foo") =>  true
(setq array1 (make-array 6 :element-type 'integer
                           :initial-contents '(1 1 1 3 5 7))) 
=>  #(1 1 1 3 5 7)
(setq array2 (make-array 8 :element-type 'integer
                           :initial-contents '(1 1 1 3 5 7 2 6)
                           :fill-pointer 6))
=>  #(1 1 1 3 5 7)
(equalp array1 array2) =>  true
(setq vector1 (vector 1 1 1 3 5 7)) =>  #(1 1 1 3 5 7)
(equalp array1 vector1) =>  true 

副作用

なし。

影響

なし。

例外

なし。

参考

eq, eql, equal, =, string=, string-equal, char=, char-equal

備考

オブジェクトの同一性は、 正しいアルゴリズムによって決められる一意性といった考え方はありません。 この同一性の関数が適切に使われる場合というのは、 ただ特定のプログラムで必要になったときの文脈でのみ判断できます。 これらの関数はどんな型の引数でも取れますし、 それらの関数名は非常に一般的に聞こえますが、 equalequalpは全てのアプリケーションにおいて 適切に使えるものではありません。


TOP, Github