CLHS: Section 2.4.8.11

#

## 2.4.8.11 Sharpsign C

`#C` reads a following object, which must be a list of length two whose elements are both reals. These reals denote, respectively, the real and imaginary parts of a complex number. If the two parts as notated are not of the same data type, then they are converted according to the rules of floating-point contagion described in Section 12.1.1.2 (Contagion in Numeric Operations).

`#C(`real`` imag`)` is equivalent to `#.(complex (quote` real`) (quote` imag`))`, except that `#C` is not affected by *read-eval*. See the function complex.

The next figure contains examples of the use of `#C`.

    #C(3.0s1 2.0s-1)  ;A complex with small float parts.
    #C(5 -3)          ;A ``Gaussian integer''
    #C(5/3 7.0)       ;Will be converted internally to #C(1.66666 7.0)
    #C(0 1)           ;The imaginary unit; that is, i.

Figure 2-21. Complex Number Example

For further information, see Section 22.1.3.1.4 (Printing Complexes) and Section 2.3.2.3 (Syntax of a Complex).

The following X3J13 cleanup issue, not part of the specification, applies to this section:

- READ-SUPPRESS-CONFUSING:GENERALIZE

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