*read-base* | Variable |
a radix.
10
.
Controls the interpretation of tokens by read as being integers or ratios.
The value of *read-base*, called the current input base, is the radix in which integers and ratios are to be read by the Lisp reader. The parsing of other numeric types (e.g., floats) is not affected by this option.
The effect of *read-base* on the reading of any particular rational number can be locally overridden by explicit use of the #O
, #X
, #B
, or #nR syntax or by a trailing decimal point.
(dotimes (i 6) (let ((*read-base* (+ 10. i))) (let ((object (read-from-string "(\\DAD DAD |BEE| BEE 123. 123)"))) (print (list *read-base* object))))) ⊳ (10 (DAD DAD BEE BEE 123 123)) ⊳ (11 (DAD DAD BEE BEE 123 146)) ⊳ (12 (DAD DAD BEE BEE 123 171)) ⊳ (13 (DAD DAD BEE BEE 123 198)) ⊳ (14 (DAD 2701 BEE BEE 123 227)) ⊳ (15 (DAD 3088 BEE 2699 123 258)) → NIL
Altering the input radix can be useful when reading data files in special formats.