CLHS: Section 22.3.2.1

#

## 22.3.2.1 Tilde R: Radix

`~`n`R` prints arg in radix n. The modifier flags and any remaining parameters are used as for the `~D` directive. `~D` is the same as `~10R`. The full form is `~`radix`,`mincol`,`padchar`,`commachar`,`comma-interval`R`.

If no prefix parameters are given to `~R`, then a different interpretation is given. The argument should be an integer. For example, if arg is 4:

* `~R` prints arg as a cardinal English number: `four`.

* `~:R` prints arg as an ordinal English number: `fourth`.

* `~@R` prints arg as a Roman numeral: `IV`.

* `~:@R` prints arg as an old Roman numeral: `IIII`.

For example:

     (format nil "~,,' ,4:B" 13) =>  "1101"
     (format nil "~,,' ,4:B" 17) =>  "1 0001"
     (format nil "~19,0,' ,4:B" 3333) =>  "0000 1101 0000 0101"
     (format nil "~3,,,' ,2:R" 17) =>  "1 22"
     (format nil "~,,'|,2:D" #xFFFF) =>   "6|55|35"

If and only if the first parameter, n, is supplied, `~R` binds *print-escape* to false, *print-radix* to false, *print-base* to n, and *print-readably* to false.

If and only if no parameters are supplied, `~R` binds *print-base* to `10`.

The following X3J13 cleanup issues, not part of the specification, apply to this section:

- PRINC-READABLY:X3J13-DEC-91
- FORMAT-PRETTY-PRINT:YES
- FORMAT-COMMA-INTERVAL

Copyright 1996-2005, LispWorks Ltd. All rights reserved.