Tester ses fonctions avec 'assert'

Chapitre 5,1

Dans le document 5,1, nous avons insisté sur l’importance de la spécification d’une fonction et sur celle d’un jeu de tests.
Dans ce document, nous allons découvrir une nouvelle façon de tester ses fonctions.

Le mot clé assert

Le mot clé assert est utilisé afin de s’assurer de la robustesse d’une fonction. Il ne doit jamais être utilisé au sein d’un programme pour lever une exception ; il ne faut donc pas le confondre avec le mot clé raise.
Placé dans la zone de test du programme,

[Lire]

Récursivité sur les entiers

To understand recursion, you must first understand recursion.

La récurrence est un raisonnement mathématique courant et parmi les plus puissants pour démontrer des théorèmes ou construire des objets. Par exemple, on l’utilise dans un cours de mathématique de lycée pour montrer que :

  • Pour tout entier $n \geqslant 0$, on a : $1 + 2 + 3 + \ldots + n = \dfrac{n(n+1)}{2}$ ;
  • Un entier naturel n’est autre que 0 ou le successeur d’un entier naturel (0 est 0, 1 est le successeur de 0, 2 est le successeur de 1, …).

En programmation, on peut raisonner de façon identique, nous allons construire des fonctions et des structures de données (listes chaînées, arbres, etc.) à l’aide d’une hypothèse de récurrence et d’un point de départ. Le déroulement de la récurrence sera quant à lui pris en charge par la machine.

[Lire]

Langages et programmation

Chapitre 2,1

À quoi a-t-on accès lorsqu’on utilise un langage de programmation ?

Un langage de programmation doit :

  • fournir des objets (ou types) primitifs ;
  • posséder une bibliothèque de fonctions prédéfinies ;
  • permettre la manipulation des objets primitifs et des fonctions prédéfinies ;
  • établir des règles qui permettent de construire de nouveaux objets (ou types) ou de nouvelles fonctions par combinaison des types primitifs et des fonctions prédéfinies.

Nous allons aborder chacun de ces points.

[Lire]