Common Lispのtypepとsubtypepはないので、
subclasspやderivedpで疑似実現すること。
eq obj1 obj2 [関数]
-
- obj1とobj2が同じオブジェクトを指すポインタあるいは同じ
数値のときTを返す。
例えば:(eq 'a 'a)はT、(eq 1 1)はT、(eq 1. 1.0)はNIL、
(eq "a" "a")はNILである。
eql obj1 obj2 [関数]
-
-
EusLispの中で数値は全て直接値で表現されるため、eqとeqlは
同一である。
equal obj1 obj2 [関数]
-
-
いろんな構造のオブジェクトの等価性をチェックする。オブジェクトは、文字列・ベクトル・
行列などで再帰的に参照してないことが保証されなければならない。
obj1やobj2が再帰的に参照されていたとすると、
equalは無限ループとなる。
superequal obj1 obj2 [関数]
-
-
superequalは、環状参照をチェックするので遅い。しかしロバストな等価が得られる。
null object [関数]
-
- objectがNILのとき、Tを返す。
(eq object nil)を評価する。
not object [関数]
-
-
notは、nullと同一である。
atom object [関数]
-
-
オブジェクトがconsのインスタンスである時のみ、NILを返す。
(atom nil) = (atom '()) = T)
注意:vectors, strings, read-table, hash-tableなどに対しては、それらがどんなに
複雑なオブジェクトとなっていてもatomはTを返す。
every pred &rest args [関数]
-
-
全てのargsがpredについてTを返した時のみ
Tを返す。everyは、predが全てのargsに対して効力があるかどうかを
検査する時に使用される。
some pred &rest args [関数]
-
-
argsのうちどれか1つがpredについてTを返したとき
Tを返す。someは、predがargsのどれかに対して効力があるかどうかを
検査する時に使用される。
functionp object [関数]
-
-
objectがapplyやfuncallで与えられる関数オブジェクトであるならTを返す。
注意:マクロはapplyやfuncallを適用することができない。
functionpは、objectが、type=0のコンパイルコードか、関数定義を持つsymbolか、
lambda-formかあるいはlambda-closureであったとき、Tを返す。
Examples: (functionp 'car) = T, (functionp 'do) = NIL
compiled-function-p object [関数]
-
-
objectが、コンパイルコードのインスタンスであったとき、Tを返す。
そのコンパイルコードが関数かまたはマクロかを知るためには、
そのオブジェクトに:typeメッセージを送り、その返り値が
functionとmacroのどちらになっているかを調べる。
2016-04-05