| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A char-table is much like a vector, except that it is indexed by
character codes. Any valid character code, without modifiers, can be
used as an index in a char-table. You can access a char-table's
elements with aref and aset, as with any array. In
addition, a char-table can have extra slots to hold additional
data not associated with particular character codes. Char-tables are
constants when evaluated.
Each char-table has a subtype which is a symbol. The subtype
has two purposes: to distinguish char-tables meant for different uses,
and to control the number of extra slots. For example, display tables
are char-tables with display-table as the subtype, and syntax
tables are char-tables with syntax-table as the subtype. A valid
subtype must have a char-table-extra-slots property which is an
integer between 0 and 10. This integer specifies the number of
extra slots in the char-table.
A char-table can have a parent, which is another char-table. If
it does, then whenever the char-table specifies nil for a
particular character c, it inherits the value specified in the
parent. In other words, (aref char-table c) returns
the value from the parent of char-table if char-table itself
specifies nil.
A char-table can also have a default value. If so, then
(aref char-table c) returns the default value
whenever the char-table does not specify any other non-nil value.
nil. You
cannot alter the subtype of a char-table after the char-table is
created.
There is no argument to specify the length of the char-table, because all char-tables have room for any valid character code as an index.
t if object is a char-table,
otherwise nil.
There is no special function to access the default value of a char-table.
To do that, use (char-table-range char-table nil).
nil or another char-table.
A char-table can specify an element value for a single character code; it can also specify a value for an entire character set.
nil
nil
t
char-table-range---either
a valid character or a generic character--and the value is
(char-table-range char-table key).
Overall, the key-value pairs passed to function describe all the values stored in char-table.
The return value is always nil; to make this function useful,
function should have side effects. For example,
here is how to examine each element of the syntax table:
(let (accumulator)
(map-char-table
#'(lambda (key value)
(setq accumulator
(cons (list key value) accumulator)))
(syntax-table))
accumulator)
=>
((475008 nil) (474880 nil) (474752 nil) (474624 nil)
... (5 (3)) (4 (3)) (3 (3)) (2 (3)) (1 (3)) (0 (3)))
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |