Adloun

Compte bancaire

Exercice · OCaml (option informatique), chapitre 7 — Enregistrements et types mutuellement récursifs

Énoncé

Déclarer compte (mutable solde : int), depose c m, et retire c m qui ne retire que si le solde suffit et renvoie un booléen de succès.

Corrigé

type compte = { mutable solde : int }

let depose c m = c.solde <- c.solde + m

let retire c m =
  if m <= c.solde then begin
    c.solde <- c.solde - m;
    true
  end
  else false

depose renvoie () ; retire renvoie true après avoir modifié le solde, ou false sans rien changer si le retrait est impossible. Le begin … end groupe la séquence (modification puis valeur true) en une expression.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.