Complexes

Contrairement à d'autres langages, la représentation externe des complexes est normalisée en Common Lisp.

Un nombre complexe contient deux parties, la partie réelle et la partie imaginaire. En Common Lisp, les deux parties doivent être, soit des rationnels soit des flottants, mais aucun mélange n'est possible.

La représentation externe des complexes comprend deux nombres séparés par un caractère blanc (en Anglais : whitespace) et entourés par #c( et ). Exemples :

* #c(1 2)

#C(1 2)
* #c(1.0 2)

#C(1.0 2.0)
* #c(1/2 3/4)

#C(1/2 3/4)
* #c(2/4 3/4)

#C(1/2 3/4)
*

On remarque que le caractère C (majuscule) est toujours utilisé par print.

Un nombre complexe dont la partie imaginaire est l'entier 0 ne peut pas exister. Dans toutes les situations où un tel nombre aurait pu être le résultat d'une opération, le nombre rationnel correspondant est substitué :

* #c(1/3 0)

1/3
* (- #c(2/3 1/2) #c(5/12 1/2))

1/4
*

Les deux parties d'un nombre complexe flottant ont toujours la même précision :

* #c(1.2 234.2d0)

#C(1.2000000476837158d0 234.2d0)
*

Irene DURAND
2011-10-14