Node: General Type Predicates, Next: Specific Data Type Predicates, Previous: V-tables and Type Predicates, Up: Predicates
| typeIs exp name | Macro |
typeIs returns t if the expression exp evaluates
to an object whose type is exactly of the type name name and
nil otherwise. Note that "exactly" implies that if
name is a supertype of the object's type then false is
returned. This macro is designed to be as fast a type check as
possible and thus returns a low level C predicate, 0 for false and 1
for true. The returned result can easily be converted to the Lpp
predicate with the pL macro if needed.
| typep object type | Function |
typep returns t if the object object type or any
supertype is the Type meta-object type and nil
otherwise. Note that typep is different from typeIs in
that any supertype of the object satisfies the test. Here are some
examples of both.
let n = L(56);
pL(typeIs(n, Integer)) => t
pL(typeIs(n, Number)) => nil
typep(n, type(Number)) => t