next up previous contents index
Next: Expressions et évaluation Up: Common Lisp Previous: Un bon style de   Contents   Index

Le premier programme

Pour donner une idée de la manière dont le programmeur interagit avec le système, voici le développement interactif d'un petit programme. Il s'agit de convertir une valeur exprimée en degrés Celcius, en degrés Fahrenheit.

* (+ (* 9/5 0) 32)

32
* (+ (* 9/5 25) 32)

77
* (+ (* 9/5 225) 32)

437
*

On remarque :

De manière à généraliser cette conversion à n'importe quelle valeur, on crée une fonction avec un paramètre lequel correspond à la valeur Celcius à convertir. Cette démarche s'appelle une abstraction sous la forme d'une fonction.

* (defun celcius-to-fahrenheit (celcius)
    (+ (* 9/5 celcius) 32))

CELCIUS-TO-FAHRENHEIT
* (celcius-to-fahrenheit 0)

32
* (celcius-to-fahrenheit 25)

77
* (celcius-to-fahrenheit 225)

437
*

On remarque :

Le résultat est parfois difficilement interprétable car le calcul exact présenté sous forme de ratio ne donne pas forcément directement une idée de la valeur approchée du résultat. On peut obtenir une valeur approchée sous forme de flottant en utilisant la fonction coerce.

* (celcius-to-fahrenheit 224)

2176/5
* (defun celcius-to-fahrenheit (celcius)
    (coerce (+ (* 9/5 celcius) 32) 'float))

CELCIUS-TO-FAHRENHEIT
* (celcius-to-fahrenheit 224)

435.2
*


next up previous contents index
Next: Expressions et évaluation Up: Common Lisp Previous: Un bon style de   Contents   Index
Robert STRANDH
2001-09-28