Forum de l’article
ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.
Je ne comprends pas l’incise au sujet de l’imprécision de Python au sujet de la déclaration des variables.
Certes, on peut taper librement a = "abc", mais cela reste précis. a se voit affecter une chaine "abc"... et si on essaye de l’utiliser comme un nombre, cela provoquera une erreur de type.
Est-ce pire que la déclaration (let* ((a "abc")) (+ 9 a)) qui compile parfaitement avec clisp ?
Une bonne approche est celle d’OCaml qui vérifie les type à la compilation. let a = "abc" in 9+a bloquera dès la compilation.
Un des problème avec Python au sujet de la déclaration des variables est le caractère global ou local qui est implicite. En Lisp, on voit bien la différence entre let et un setq...
Je n’aurai pas la prétention de trancher la controverse entre typage dynamique et typage statique. J’observe néanmoins que les Scheme que j’utilise (Bigloo, DrRacket...) refusent (let* ((a "abc")) (+ 9 a))...
Pour programmer de façon rigoureuse avec Python il faut non seulement une force d’âme hors du commun, mais en outre qu’elle s’exerce sans le moindre relâchement. C’est beaucoup demander...