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