Logo de kxs.frCours d'informatique pour le lycée et la prépa

If … then … else …

Syntaxe

OCaml permet bien entendu d'utiliser la structure if … then … else … comme dans la plupart des autres langages. La seule différence est qu'on s'en servira uniquement avec des expressions pour le moment.

Prenons l'exemple de la fonction valeur absolue :

# let valabs x = (if x >= 0 then x else -x);;
val valabs : int -> int = <fun>

Que l'on peut aussi définir sans les parenthèses :

# let valabs x = if x >= 0 then x else -x;;
val valabs : int -> int = <fun>

On peut alors vérifier son fonctionnement :

# valabs (-6);;
- : int = 6
# valabs 6;;
- : int = 6

Opérateurs de compariason

Nous aurons besoin des opérateurs de comparaison suivants :

Booléens

Il existe un type booléen dans OCaml : bool On peut le découvrir facilement :

# 2=3;;
- : bool = false
# 4=4;;
- : bool = true

Opérateurs sur les booléens

Il n'existe que trois opérateurs pour les booléens en Ocaml :

Exercices

1) Écrire une fonction pairimpaire qui renvoie le mot « pair » si le nombre en entrée est pair et « impaire » sinon. Les chaîne de caractères se notent avec des guillemets doubles « " » en OCaml.

# let pairimpaire n = if n mod 2 = 0 then "pair" else "impaire";;
val pairimpaire : int -> string = <fun>

2) Écrire une fonction inverse qui renvoie le booléen true si elle reçoie false et false sinon (c'est la fonction not).

# let inverse b = if b then false else true;;
val inverse : bool -> bool = <fun>

3) Écrire une fonction xor qui renvoie le ou-exclusif de ses deux paramètres. Le ou exclusif est vrai si seulement l'une des deux entrées est vraie.