Premiers pas en OCaml/Opérations arithmétiques
Opérations sur les entiers
[modifier | modifier le wikicode]L'inférence de type décharge le développeur de la déclaration des différents types. En contrepartie il faut utiliser des opérateurs spécifiques pour chaque type.
Les opérateurs +
, -
, /
, *
, mod
permettent respectivement d'effectuer additions, soustractions, division euclidienne, multiplication et reste de la division euclidienne (modulo).
Exemple d'opération sur les entiers : l'addition
[modifier | modifier le wikicode]# 1+2;;
- : int = 3
Vous pouvez aussi insérer des espaces et tabulations dans votre expression. Cela ne change pas le résultat.
# 1 + 2 ;;
- : int = 3
Néanmoins il est conseillé d'utiliser
- un espace après un délimiteurs (',')
- un espace avant et après les symboles d'opérations ('+').
Priorité des opérateurs
[modifier | modifier le wikicode]L'ordre des opérateurs est le même que pour les mathématiques : *
et /
sont prioritaires sur +
et -
.
# 1 * 2 - 3 + 4 ;;
- : int = 3
Mais il reste possible d’utiliser des parenthèses pour changer les priorités.
# 1 * 2 - (3 + 4) ;;
- : int = -5
La division euclidienne
[modifier | modifier le wikicode]L'utilisation de la division /
donne le quotient de la division euclidienne.
# 5 / 2 ;;
- : int = 2
L'opérateur modulo mod quant à lui donne le reste de la division euclidienne.
# 5 mod 2 ;;
- : int = 1
Opérations sur les réels
[modifier | modifier le wikicode]Les opérateurs pour les réels sont les mêmes que pour les entiers, mais suivis d'un point +.
, -.
, *.
, /.
.
Exemple d'opération sur les réels : l'addition
[modifier | modifier le wikicode]# 1.0 +. 2.0 ;;
- : float = 3.
Priorité des opérateurs
[modifier | modifier le wikicode]L'addition s'effectue avec l'opérateur + pour les entiers et +. pour les réels.
De même *.
et /.
sont prioritaires sur +.
et -.
.
# 1. *. 2. -. 3. +. 4. ;;
- : float = 3.
De même, les parenthèses changent les priorités.
# 1. *. 2. -. (3. +. 4.) ;;
- : float = -5.
Division exacte
[modifier | modifier le wikicode]Mais cette fois la division donne le résultat exact.
# 5. /. 2. ;;
- : float = 2.5
Puissance
[modifier | modifier le wikicode]La puissance () est donnée par l'opérateur **.
(* x ** n *)
# 3. ** 4. ;;
- : float = 81.
Racine carrée
[modifier | modifier le wikicode]La racine carrée () est donnée par la fonction sqrt.
# sqrt 81. ;;
- : float = 9.
Fonctions trigonométriques
[modifier | modifier le wikicode]Les fonctions trigonométriques :
- cos
- sin
- tan
- acos
- asin
- atan
- atan2
4. *. atan 1.;;
- : float = 3.14159265358979312
Fonctions logarithmiques et exponentielle
[modifier | modifier le wikicode]# exp 0. ;;
- : float = 1.
# log 1. ;;
- : float = 0.
# log (-1.) ;;
- : float = nan
# exp (log 42.) ;;
- : float = 42.0000000000000071
Tableau récapitulatif
[modifier | modifier le wikicode]Voir la fiche de synthèse.
Références
[modifier | modifier le wikicode]Toutes ces informations sont disponibles sur la documentation officielle :
[html] • [licence Copyright] • (fr) • lien vers le document • Conseils de présentation des programmes
[html] • [licence Copyright] • (en) • lien vers le document • Liste des fonctions