Comme d'autres langages, Common Lisp a des opérations d'addition, soustraction, mulitplication et division. Mais comme pour les opérations de comparaison, il s'agit en Common Lisp de fonctions normales dont les noms sont les symboles suivants :
nom | fonction |
+ | addition |
- | soustraction |
* | multiplication |
/ | division |
La fonction d'addition prend un nombre arbitraire de paramètres. Elle renvoie la somme des arguments, ou 0 si aucun argument n'a été fourni. Les arguments peuvent être de sous-type arbitraire du type number, y compris complex. Exemples :
* (+)
0
* (+ 123)
123
* (+ 12 #c(3.1 9))
#C(15.1 9.0)
* (+ 12 #c(3.1 9d0))
#C(15.099999904632568d0 9.0d0)
* (+ 1 2 3 4 5 6 7 8 9 10)
55
*
La fonction de soustraction prend au moins un argument. Si un seul argument est fourni, cette fonction renvoie l'opposé de celui-ci. Si le nombre d'arguments fournis est supérieur à un, alors la fonction de soustraction renvoie la différence entre le premier et la somme des autres. Exemples :
* (- 234)
-234
* (- #c(2345 22/3))
#C(-2345 -22/3)
* (- 33 2 5 3 4 1.4)
17.6
* (- 33 2 5 3 4 1.4d2)
-121.0d0
* (- 33 2 5 3 4 1.4d1)
5.0d0
* (- 33 2 5 3 4 1.41d1)
4.9d0
*
Comme l'addition, la fonction de multiplication prend un nombre arbitraire d'arguments. Elle renvoie le produit des arguments, ou 1 si aucun argument n'a été fourni. Exemples :
* (*)
1
* (* 123/11)
123/11
* (* 123/11 12.33)
137.87181
* (* 123/11 12.33 #c(33 11))
#C(4549.7695 1516.59)
*
Comme la soustraction, la fonction de divison prend au moins un argument. Si un seul argument est fourni, cette fonction renvoie l'inverse de celui-ci. Si le nombre d'arguments fournis est supérieur à un, alors elle renvoie le premier argument divisé par le produit des autres. Exemples :
* (/ 2345)
1/2345
* (/ #c(22 4.8))
#C(0.04338908 -0.009466709)
* (/ 12 3.0)
4.0
* (/ 112 2 8.0 2d1)
0.35d0
*
Les fonctions max et min prennent au moins un argument. Les arguments doivent être de type real. Exemples :
* (max 4)
4
* (max 9 46/5 9.01)
46/5
* (min 9 46/5 9.01)
9
*