Cours alternatif d’OCaml

Logo OCaml
I — Notions de base

Entraînement

Pour voir si vous avez bien compris ce qu’on a expliqué jusque-là, vous pouvez essayer de répondre aux questions suivantes. Vos réponses passeront du vert au rouge si elles sont justes.

Quel est le type de chacune des expressions suivantes ? Si le type n’est pas valide, tapez ERREUR.
2 + 2
2e3 +. 2.5 *. (float_of_int 4)
'H'
12 > 3 && 7
"Bonjour " ^ "toi" ^ " !"
42 > 12 || 19 > 38
let ajouter x y = x + y

ajouter (* C’est le type de "ajouter" qu’on demande *)
'A' + 3
(* On suppose que ’x’ et ’y’ sont des constantes définies avant,
 * mais dont on ne vous donne pas la valeur.
 *
 * Aussi : cette expression ne donne pas d’erreur de type.
 *)

x +. (y *. y)
Les expressions booléennes suivantes sont-elles vraies (true) ou fausses (false) ?
42 > 12 || 19 > 38
4 * 5 + 2 = 28
'a' < 'e'
let x = 15

x > 2 && x < 17
"Zoé" > "Alice"
Que faut-il écrire à la place des ______ pour que resultat vaille 38 ?
let ______ = (2 * x * x) + (3 * x) + 11

let resultat = polynome 3

Si vous voulez vous entraîner encore un peu, voici un vrai exercice.

Réalisez les fonction suivantes :

Proposition de correction
let cube (x : float) : float = x * x * x

let egal (a : float) (b : float) (epsilon : float) : bool =
  let diff = a -. b in
  diff < epsilon

let est_ascii (c : char) (i : int) : bool =
  (int_of_char c) = i

Une fois que vous avez fini, vous pouvez passer à la suite. Si vous n’avez pas eu juste à beaucoup de questions, le mieux est sans doute de relire le premier chapitre, tout en testant les exemples de code vous-même, et en en créant de nouveaux vous-même. Si quelque chose ne vous semble pas clair, vous pouvez écrire un mail à ocaml arobase gelez point xyz pour des explications.