Cours alternatif d’OCaml

Logo OCaml
II — Conditions et pattern-matching

Entraînement

Comme pour le chapitre précédent, voici un petit quiz pour voir ce que vous avez compris et ce qu’il faut encore travailler. Le fonctionnement est toujours le même : vos réponses deviennent vertes dès qu’elles sont justes.

On considère la fonction suivante :

let tarif_concert age =
  if age < 16 then
    5
  else if age > 60 then
    10
  else
    15

Quelles sont les valeurs des expressions suivantes ?

tarif_concert 12
tarif_concert 38
tarif_concert 127
tarif_concert -15

Que faut-il écrire à la place des ______ pour que ces fonctions fassent ce qu’on attend d’elles ?

let salut langue =
  match langue with
  | "fr" -> "Bonjour"
  | "es" -> "Hola"
  | "de" -> "Hallo"
  | ______ -> "Hello"
  | autre -> "Je ne parle pas " ^ autre
let capitale pays =
  match pays with
  | "Allemagne" -> "Berlin"
  | "Italie" -> "Rome"
  | "Espagne" -> "Madrid"
  | "France" -> ______
  | autre -> "Je ne connais pas la capitale de " ^ autre

Écrivez les fonctions suivantes :

Proposition de correction
let abs (x : int) : int =
  if x > 0 then
    x
  else
    -x

let ecrire_nombre (x : int) : string =
  match x with
  | 0 -> "Zéro"
  | 1 -> "Un"
  | 2 -> "Deux"
  | 3 -> "Trois"
  | 4 -> "Quatre"
  | 5 -> "Cinq"
  | _ -> "Je ne sais pas compter au-delà de 5 :(".