Adloun

OCaml (option informatique) · Chapitre 20 · Application directe du cours

Un décideur

Calculabilité et décidabilité · niveau 1 (application)

Énoncé

Écrire un décideur pour « tous les éléments de la liste l sont positifs » et justifier qu'il s'arrête toujours.

Corrigé

let rec tous_positifs l =
  match l with
  | [] -> true
  | x :: reste -> x > 0 && tous_positifs reste

La récursion porte sur une liste strictement plus courte à chaque appel : elle atteint [] en un nombre fini d'étapes (variant : la longueur). La fonction s'arrête sur toute entrée et donne la bonne réponse : le problème est décidable.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre