78 |
In most cases, an object's printed representation is also a read |
In most cases, an object's printed representation is also a read |
79 |
syntax for the object. However, some types have no read syntax, since |
syntax for the object. However, some types have no read syntax, since |
80 |
it does not make sense to enter objects of these types as constants in |
it does not make sense to enter objects of these types as constants in |
81 |
a Lisp program. These objects are printed in @dfn{hash notation}: the |
a Lisp program. These objects are printed in @dfn{hash notation}, |
82 |
characters @samp{#<} followed by a descriptive string (typically the |
which consists of the characters @samp{#<}, a descriptive string |
83 |
type name followed by the name of the object), and closed with a |
(typically the type name followed by the name of the object), and a |
84 |
matching @samp{>}. For example: |
closing @samp{>}. For example: |
85 |
|
|
86 |
@example |
@example |
87 |
(current-buffer) |
(current-buffer) |
621 |
@dfn{atoms}. |
@dfn{atoms}. |
622 |
|
|
623 |
@cindex parenthesis |
@cindex parenthesis |
624 |
|
@cindex @samp{(@dots{})} in lists |
625 |
The read syntax and printed representation for lists are identical, and |
The read syntax and printed representation for lists are identical, and |
626 |
consist of a left parenthesis, an arbitrary number of elements, and a |
consist of a left parenthesis, an arbitrary number of elements, and a |
627 |
right parenthesis. Here are examples of lists: |
right parenthesis. Here are examples of lists: |
707 |
@end group |
@end group |
708 |
@end smallexample |
@end smallexample |
709 |
|
|
|
@cindex @samp{(@dots{})} in lists |
|
710 |
@cindex @code{nil} in lists |
@cindex @code{nil} in lists |
711 |
@cindex empty list |
@cindex empty list |
712 |
A list with no elements in it is the @dfn{empty list}; it is identical |
A list with no elements in it is the @dfn{empty list}; it is identical |
749 |
@end group |
@end group |
750 |
@end example |
@end example |
751 |
|
|
752 |
The same list represented in the first box notation looks like this: |
The same list represented in the second box notation looks like this: |
753 |
|
|
754 |
@example |
@example |
755 |
@group |
@group |
776 |
@dfn{Dotted pair notation} is a general syntax for cons cells that |
@dfn{Dotted pair notation} is a general syntax for cons cells that |
777 |
represents the @sc{car} and @sc{cdr} explicitly. In this syntax, |
represents the @sc{car} and @sc{cdr} explicitly. In this syntax, |
778 |
@code{(@var{a} .@: @var{b})} stands for a cons cell whose @sc{car} is |
@code{(@var{a} .@: @var{b})} stands for a cons cell whose @sc{car} is |
779 |
the object @var{a}, and whose @sc{cdr} is the object @var{b}. Dotted |
the object @var{a} and whose @sc{cdr} is the object @var{b}. Dotted |
780 |
pair notation is more general than list syntax because the @sc{cdr} |
pair notation is more general than list syntax because the @sc{cdr} |
781 |
does not have to be a list. However, it is more cumbersome in cases |
does not have to be a list. However, it is more cumbersome in cases |
782 |
where list syntax would work. In dotted pair notation, the list |
where list syntax would work. In dotted pair notation, the list |
913 |
type of array has its own read syntax; see the following sections for |
type of array has its own read syntax; see the following sections for |
914 |
details. |
details. |
915 |
|
|
916 |
The array type is contained in the sequence type and |
The array type is a subset of the sequence type, and contains the |
917 |
contains the string type, the vector type, the bool-vector type, and the |
string type, the vector type, the bool-vector type, and the char-table |
918 |
char-table type. |
type. |
919 |
|
|
920 |
@node String Type |
@node String Type |
921 |
@subsection String Type |
@subsection String Type |
1166 |
|
|
1167 |
A hash table is a very fast kind of lookup table, somewhat like an |
A hash table is a very fast kind of lookup table, somewhat like an |
1168 |
alist in that it maps keys to corresponding values, but much faster. |
alist in that it maps keys to corresponding values, but much faster. |
1169 |
Hash tables have no read syntax, and |
Hash tables have no read syntax, and print using hash notation. |
1170 |
print using hash notation. @xref{Hash Tables}. |
@xref{Hash Tables}, for functions that operate on hash tables. |
1171 |
|
|
1172 |
@example |
@example |
1173 |
(make-hash-table) |
(make-hash-table) |
1607 |
|
|
1608 |
@node Type Predicates |
@node Type Predicates |
1609 |
@section Type Predicates |
@section Type Predicates |
|
@cindex predicates |
|
1610 |
@cindex type checking |
@cindex type checking |
1611 |
@kindex wrong-type-argument |
@kindex wrong-type-argument |
1612 |
|
|
1941 |
@end group |
@end group |
1942 |
@end example |
@end example |
1943 |
|
|
1944 |
|
@cindex equality of strings |
1945 |
Comparison of strings is case-sensitive, but does not take account of |
Comparison of strings is case-sensitive, but does not take account of |
1946 |
text properties---it compares only the characters in the strings. For |
text properties---it compares only the characters in the strings. For |
1947 |
technical reasons, a unibyte string and a multibyte string are |
technical reasons, a unibyte string and a multibyte string are |