1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 \section{System Types and Classes
}
3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12 \kwd*
{COMPLEX
} \Op{\VAR{type
\footnotemark[3]}} \\
13 \kwd*
{REAL
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}\\
15 \kwd*
{RATIONAL
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}\\
17 \kwd*
{INTEGER
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}\\
21 \kwd*
{SIGNED-BYTE
} \Op{\VAR{size
\footnotemark[3]}}\\
22 \boxGOO{\kwd*
{UNSIGNED-BYTE
} \Op{\VAR{size
\footnotemark[3]}}
23 \boxGOO{\kwd*
{BIT
} }}}\\
24 \kwd*
{RATIO
}}\boxGOOcr
25 \kwd*
{FLOAT
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}\\
27 \kwd*
{SHORT-FLOAT
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}\\
28 \kwd*
{SINGLE-FLOAT
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}\\
29 \kwd*
{DOUBLE-FLOAT
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}\\
30 \kwd*
{LONG-FLOAT
} \OP{\VAR{lower-limit
\footnotemark[3] }\Op{\VAR{upper-limit
\footnotemark[3]}}}}}}\boxGOOcr
35 \kwd*
{CONS
} \OP{\VAR{car-type
\footnotemark[3] }\Op{\VAR{cdr-type
\footnotemark[3]}}}\\
36 \kwd*
{SYMBOL
}\footnotemark[2]
38 \kwd*
{NULL
}}}\boxGOOcr
39 \kwd*
{ARRAY
}\footnotemark[2] \OP{\VAR{type
\footnotemark[3] }\Op{\VAR{dimension
\footnotemark[3]}}}\\
41 \kwd*
{SIMPLE-ARRAY
}\footnotemark[2] \OP{\VAR{type
\footnotemark[3] }\Op{\VAR{dimension
\footnotemark[3]}}}\\
43 \kwd*
{VECTOR
}\footnotemark[2] \OP{\VAR{type
\footnotemark[3] }\Op{\VAR{size
\footnotemark[3]}}}\\
45 \kwd*
{SIMPLE-VECTOR
} \Op{\VAR{size
\footnotemark[3]}}\\
46 \kwd*
{BIT-VECTOR
}\footnotemark[2] \Op{\VAR{size
\footnotemark[3]}}\\
48 \kwd*
{SIMPLE-BIT-VECTOR
} \Op{\VAR{size
\footnotemark[3]}}}\boxGOOcr
49 \kwd*
{STRING
}\footnotemark[2] \Op{\VAR{size
\footnotemark[3]}}\\
51 \kwd*
{SIMPLE-STRING
} \Op{\VAR{size
\footnotemark[3]}}\\
53 \kwd*
{BASE-STRING
}\footnotemark[2] \Op{\VAR{size
\footnotemark[3]}}\\
55 \kwd*
{SIMPLE-BASE-STRING
} \Op{\VAR{size
\footnotemark[3]}}}}}}}\boxGOOcr
56 \kwd*
{VECTOR
}\footnotemark[2] \OP{\VAR{type
\footnotemark[3] }\Op{\VAR{size
\footnotemark[3]}}}\\
58 \kwd*
{BIT-VECTOR
}\footnotemark[2] \Op{\VAR{size
\footnotemark[3]}}\\
59 \kwd*
{STRING
}\footnotemark[2] \Op{\VAR{size
\footnotemark[3]}}
61 \kwd*
{BASE-STRING
}\footnotemark[2] \Op{\VAR{size
\footnotemark[3]}}}}}}\boxGOOcr
66 \kwd*
{STANDARD-CHAR
}}\\
67 \kwd*
{EXTENDED-CHAR
}}\boxGOOcr
71 \kwd*
{TWO-WAY-STREAM
},\>
72 \kwd*
{SYNONYM-STREAM
},\\
73 \kwd*
{STRING-STREAM
},\>
74 \kwd*
{BROADCAST-STREAM
},\>
76 \kwd*
{CONCATENATED-STREAM
}}\boxGOOcr
79 \kwd*
{LOGICAL-PATHNAME
}}\boxGOOcr
80 \kwd*
{SYMBOL
}\footnotemark[2]
83 \kwd*
{BOOLEAN
} }\boxGOOcr
84 \kwd*
{FUNCTION
} \OP{\VAR{arg-types
}\Op{\VAR{value-types
}}}\\
86 \kwd*
{GENERIC-FUNCTION
}
87 \boxGOO{\kwd*
{STANDARD-GENERIC-FUNCTION
}}\\
88 \kwd*
{COMPILED-FUNCTION
}}\boxGOOcr
89 \kwd*
{STANDARD-OBJECT
}
93 \kwd*
{STANDARD-CLASS
},\>
94 \kwd*
{BUILT-IN-CLASS
},\\
95 \kwd*
{STRUCTURE-CLASS
}}\\
96 \kwd*
{STANDARD-METHOD
}}\boxGOOcr
97 \kwd*
{ARRAY
}\footnotemark[2] \OP{\VAR{type
\footnotemark[3] }\Op{\VAR{dimension
\footnotemark[3]}}}\\
99 \kwd*
{SIMPLE-ARRAY
}\footnotemark[2] \OP{\VAR{type
\footnotemark[3] }\Op{\VAR{dimension
\footnotemark[3]}}}}\boxGOOcr
102 \kwd*
{STRUCTURE-OBJECT
},\>
105 \kwd*
{RANDOM-STATE
},\>
108 \kwd*
{METHOD-COMBINATION
}}}
109 \end{center
}\vspace{-
1em
}
110 {\footnotesize\footnotemark[2]Multiply defined.
}\\
111 {\footnotesize\footnotemark[3]Defaults to
\kwd{*
} meaning no restriction.
}
113 \caption{Data Types.
}%
119 \IT{(
\FU*
{TYPEP
} \VAR{foo
} \VAR{type
} \Op{\VAR{environment
}})
}
121 Return
\retval{\T} if
\VAR{foo
} is of
\VAR{type
}.
124 \IT{(
\FU*
{SUBTYPEP
} \VAR{type-a
} \VAR{type-b
}
125 \Op{\VAR{environment
}})
}
127 Return
\retval{\T} if
\VAR{type-a
} is a recognizable subtype of
128 \VAR{type-b
}, and
\retvalii{\NIL} if the relationship could not be
132 \IT{(
\SF*
{THE
} \VAR{type
} {form
})
}
134 Return
\retval{values
} of
\VAR{form
} which are declared to be of
138 \IT{(
\FU*
{COERCE
} \VAR{object
} \VAR{type
})
}
140 Coerce
\VAR{object
} into
\VAR{type
}.
143 \IT{(
\SF*
{TYPECASE
} \VAR{foo
} \OPn{(
\VAR{type
} \OPn{\VAR{form-a
}})
}
144 \OP{(
\xorGOO{\kwd*
{OTHERWISE
}\\
\T}{\
}}\OPn{\VAR{form-b
}})
\DF{\NIL}})
}
146 Return
\retval{values of a
\VAR{form-a
}} if
\VAR{foo
} is of this
147 \VAR{type
}. Return
\retval{values of
\VAR{form-b
}} otherwise.
150 \IT{(
\xorGOO{\SF*
{CTYPECASE
}\\
152 }{\
}}\VAR{foo
} \OPn{(
\VAR{type
} \OPn{\VAR{form
}})
})
}
154 Return
\retval{value of a
\VAR{form
}} if
\VAR{foo
} is of this
\VAR{type
}.
155 Signal correctable/non-correctable error, respectively.
158 \IT{(
\FU*
{TYPE-OF
} \VAR{foo
})
}
160 \retval{Type of
\VAR{foo
}}.
163 \IT{(
\kwd*
{CHECK-TYPE
} \VAR{place
} \VAR{type
} \Op{\VAR{string
}})
}
165 Return
\retval{\NIL} and signal correctable error if
\VAR{place
} is
169 \IT{(
\FU*
{STREAM-ELEMENT-TYPE
} \VAR{stream
})
}
171 Return
\retval{type
} of
\VAR{stream
} objects.
174 \IT{(
\FU*
{ARRAY-ELEMENT-TYPE
} \VAR{array
})
}
176 Element
\retval{type
} \VAR{array
} holds.
179 \IT{(
\FU*
{UPGRADED-ARRAY-ELEMENT-TYPE
} \VAR{type
}
180 \Op{\VAR{environment
}})
}
182 \retval{Element type
} of most specialized array capable of holding
183 elements of
\VAR{type
}.
186 \IT{(
\SF*
{DEFTYPE
} \VAR{name
} \OPn{\VAR{arg
}}
187 \OPn{(
\kwd{declare
} \OPn{\VAR{decl
}})
} \Op{\VAR{documentation
}}
190 Define new type
\retval{\VAR{name
}}.
193 \IT{\arrGOO{(
\kwd{EQL
} \VAR{foo
})\\
194 (
\kwd{MEMBER
} \OPn{\VAR{foo
}})
}{.
}}
196 Type specifier, comprising just
\VAR{foo
} of
\VAR{foo
}s, respectively.
199 \IT{(
\kwd*
{SATISFIES
} \VAR{name
})
}
201 Type specifier for all objects satisfying predicate
\VAR{name
}.
204 \IT{(
\kwd*
{MOD
} \VAR{n
})
}
206 Type specifier for all integers $<n$.
209 \IT{(
\kwd{NOT
} \VAR{type
})
}
214 \IT{(
\kwd*
{AND
} \OPn{\VAR{type
}}\DF{\T})
}
216 Type specifier for intersection of
\VAR{type
}s.
219 \IT{(
\kwd*
{OR
} \OPn{\VAR{type
}}\DF{\NIL})
}
221 Type specifier for union of
\VAR{type
}s.
224 \IT{(
\kwd*
{VALUES
} \OPn{\VAR{type
}} \OP{\OPn{\VAR{type
}}
225 \Op{\VAR{other-args
}}})
}
227 Type specifier for multiple values.