next up previous contents index
Next: Flottants Up: Nombres Previous: Entiers   Contents   Index

Ratios

Contrairement à la plupart des autres langages de programmation, Common Lisp est capable de manipuler des nombres rationnels arbitraires. Certains nombres rationnels (comme les entiers ou les flottants en base 2) sont manipulables par un grand nombre de langages, alors que certains autres, comme 1/3 ne le sont pas. Ces derniers nécessitent une représentation sous la forme de deux entiers (numérateur et dénominateur). En Common Lisp ces nombres sont des ratios.

Les nombres de type ratio permettent une représentation exacte d'un grand nombre de calculs. Par exemple, la résolution d'un système linéaire d'équations avec coefficients rationnels donne toujours des solutions rationnelles. L'utilisation de ratio pour ce type de calcul évite alors la perte de précision pendant le calcul.

La représentation externe d'un ratio en Common Lisp comprend deux entiers séparés par le caractère / (en Anglais : slash), précédés éventuellement d'un signe. Exemple :

* 3/4

3/4
* +24/10

12/5
* -224/4

-56
*

On remarque que read crée un objet en représentation canonique. Les facteurs communs entre dénominateur et numérateurs sont supprimés, et si possible, un entier est créé à la place du ratio.


next up previous contents index
Next: Flottants Up: Nombres Previous: Entiers   Contents   Index
Robert STRANDH
2001-09-28