Premiers pas en OCaml/Opérations arithmétiques
Opérations sur les entiers
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
# 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
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
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
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
# 1.0 +. 2.0 ;;
- : float = 3.
Priorité des opérateurs
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
Mais cette fois la division donne le résultat exact.
# 5. /. 2. ;;
- : float = 2.5
Puissance
La puissance () est donnée par l'opérateur **.
(* x ** n *)
# 3. ** 4. ;;
- : float = 81.
Racine carrée
La racine carrée () est donnée par la fonction sqrt.
# sqrt 81. ;;
- : float = 9.
Fonctions trigonométriques
Les fonctions trigonométriques :
- cos
- sin
- tan
- acos
- asin
- atan
- atan2
4. *. atan 1.;;
- : float = 3.14159265358979312
Fonctions logarithmiques et exponentielle
# exp 0. ;;
- : float = 1.
# log 1. ;;
- : float = 0.
# log (-1.) ;;
- : float = nan
# exp (log 42.) ;;
- : float = 42.0000000000000071
Tableau récapitulatif
Voir la fiche de synthèse.
Références
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