là je ne suis pas tout à fait d'accord, si on veut quelque chose proche des mathématiques, autant faire du fonctionnel plutôt que du procédiral. J'aime beaucoup l'haskell pour ce genre de choses. Il permet vraiment de formaliser la pensée mathématique. Par exemple, pour les factorielles, la définition classique est de dire que factorielle de 0 est 1 et que factoriel de n est n * factorielle de n-1. En haskell, ça s'écrit comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fact 0 = 1 fact n = n * fact (n - 1)
Bof, de toute façon on ne peut pas tout leur expliquer d'un coup en C non plus... Après 4 séances de C, les débutants ne comprennent toujours pas ce que signifie main() {} et comprennent encore moins pourquoi gcc leur retourne des warnings (si l'on compile avec -Wall) à cause de ce main(). On pourrait dès le début leur faire écrire int main(int argc, char** argv) mais là il ne comprendrait pas les paramètres ni le return 0 à la fin...
Il faut toujours faire des choix quand on enseigne la programmation, le C n'échappe pas à la règle.
Partager