@tex
@math{2^{29}-1})
@end tex
-on most machines. (Some machines may provide a wider range.)
-If integer arithmetic overflows, the resulting value is converted
-+to floating point. Thus @code{(1+ 536870911)} may evaluate to
-+536870912.0, depending on your hardware.
+on typical 32-bit machines. (Some machines provide a wider range.)
+Emacs Lisp arithmetic functions do not check for overflow. Thus
+@code{(1+ 536870911)} is @minus{}536870912 if Emacs integers are 30 bits.
The read syntax for integers is a sequence of (base ten) digits with an
optional sign at the beginning and an optional period at the end. The
1 ; @r{The integer 1.}
1. ; @r{Also the integer 1.}
+1 ; @r{Also the integer 1.}
-1073741825 ; @r{The floating point number 1073741825.0,}
- ; @r{on a 30-bit implementation.}
@end group
@end example
As a special exception, if a sequence of digits specifies an integer
too large or too small to be a valid integer object, the Lisp reader
reads it as a floating-point number (@pxref{Floating Point Type}).
-For instance, on most machines @code{536870912} is read as the
-floating-point number @code{536870912.0}.
+For instance, if Emacs integers are 30 bits, @code{536870912} is read
+as the floating-point number @code{536870912.0}.
@xref{Numbers}, for more information.
and the hexadecimal character code. You can use any number of hex
digits, so you can represent any character code in this way.
Thus, @samp{?\x41} for the character @kbd{A}, @samp{?\x1} for the
-character @kbd{C-a}, and @code{?\x8e0} for the Latin-1 character
+character @kbd{C-a}, and @code{?\xe0} for the Latin-1 character
@iftex
@samp{@`a}.
@end iftex
@end group
@end example
+@cindex @samp{##} read syntax
@ifinfo
@c This uses ``colon'' instead of a literal `:' because Info cannot
@c cope with a `:' in a menu
@ifnotinfo
@cindex @samp{#:} read syntax
@end ifnotinfo
- Normally the Lisp reader interns all symbols (@pxref{Creating
-Symbols}). To prevent interning, you can write @samp{#:} before the
-name of the symbol.
+ As an exception to the rule that a symbol's name serves as its
+printed representation, @samp{##} is the printed representation for an
+interned symbol whose name is an empty string. Furthermore,
+@samp{#:@var{foo}} is the printed representation for an uninterned
+symbol whose name is @var{foo}. (Normally, the Lisp reader interns
+all symbols; @pxref{Creating Symbols}.)
@node Sequence Type
@subsection Sequence Types
greater than 256.) Any character which is not a valid hex digit
terminates this construct. If the next character in the string could be
interpreted as a hex digit, write @w{@samp{\ }} (backslash and space) to
-terminate the hex escape---for example, @w{@samp{\x8e0\ }} represents
+terminate the hex escape---for example, @w{@samp{\xe0\ }} represents
one character, @samp{a} with grave accent. @w{@samp{\ }} in a string
constant is just like backslash-newline; it does not contribute any
character to the string, but it does terminate the preceding hex escape.