@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/sequences
@node Sequences Arrays Vectors, Hash Tables, Lists, Top
sequence.
@defun sequencep object
-Returns @code{t} if @var{object} is a list, vector, or
-string, @code{nil} otherwise.
+Returns @code{t} if @var{object} is a list, vector,
+string, bool-vector, or char-table, @code{nil} otherwise.
@end defun
@defun length sequence
@cindex list length
@cindex vector length
@cindex sequence length
+@cindex char-table length
This function returns the number of elements in @var{sequence}. If
@var{sequence} is a cons cell that is not a list (because the final
@sc{cdr} is not @code{nil}), a @code{wrong-type-argument} error is
-signaled.
+signaled. For a char-table, the value returned is always one more
+than the maximum Emacs character code.
@xref{List Elements}, for the related function @code{safe-length}.
@end example
@end defun
+@defun string-bytes string
+@cindex string, number of bytes
+This function returns the number of bytes in @var{string}.
+If @var{string} is a multibyte string, this is greater than
+@code{(length @var{string})}.
+@end defun
+
@defun elt sequence index
@cindex elements of sequences
This function returns the element of @var{sequence} indexed by
@xref{Text Properties}.
See also @code{append} in @ref{Building Lists}, @code{concat} in
-@ref{Creating Strings}, and @code{vconcat} in @ref{Vectors}, for other
-ways to copy sequences.
+@ref{Creating Strings}, and @code{vconcat} in @ref{Vector Functions},
+for other ways to copy sequences.
@example
@group
Emacs defines four types of array, all one-dimensional: @dfn{strings},
@dfn{vectors}, @dfn{bool-vectors} and @dfn{char-tables}. A vector is a
general array; its elements can be any Lisp objects. A string is a
-specialized array; its elements must be characters. Each type of array
+specialized array; its elements must be characters. Each type of array
has its own read syntax.
@xref{String Type}, and @ref{Vector Type}.
@end group
@group
(aref "abcdefg" 1)
- @result{} 98 ; @r{@samp{b} is @sc{ascii} code 98.}
+ @result{} 98 ; @r{@samp{b} is @acronym{ASCII} code 98.}
@end group
@end example
arguments. This is a special feature to make it easy to access the entire
contents of a byte-code function object. @xref{Byte-Code Objects}.
-The @code{vconcat} function also allows integers as arguments. It
-converts them to strings of digits, making up the decimal print
-representation of the integer, and then uses the strings instead of the
-original integers. @strong{Don't use this feature; we plan to eliminate
-it. If you already use this feature, change your programs now!} The
-proper way to convert an integer to a decimal number in this way is with
-@code{format} (@pxref{Formatting Strings}) or @code{number-to-string}
-(@pxref{String Conversion}).
+In Emacs versions before 21, the @code{vconcat} function allowed
+integers as arguments, converting them to strings of digits, but that
+feature has been eliminated. The proper way to convert an integer to
+a decimal number in this way is with @code{format} (@pxref{Formatting
+Strings}) or @code{number-to-string} (@pxref{String Conversion}).
For other concatenation functions, see @code{mapconcat} in @ref{Mapping
Functions}, @code{concat} in @ref{Creating Strings}, and @code{append}
@dfn{extra slots} in the char-table.
@cindex parent of char-table
- A char-table can have a @dfn{parent}. which is another char-table. If
+ A char-table can have a @dfn{parent}, which is another char-table. If
it does, then whenever the char-table specifies @code{nil} for a
particular character @var{c}, it inherits the value specified in the
parent. In other words, @code{(aref @var{char-table} @var{c})} returns
These results make sense because the binary codes for control-_ and
control-W are 11111 and 10111, respectively.
+@ignore
+ arch-tag: fcf1084a-cd29-4adc-9f16-68586935b386
+@end ignore