#

##
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:

*Copyright 1996, The Harlequin Group Limited. All Rights Reserved.*