• [^] # Re: Pourquoi les gens critiquent toujours python avec de mauvais argumen

    Posté par (site web personnel) . En réponse au journal Journal inutile : Python c'est complêtement pourri, j'ai un exemple. Évalué à 2.

    J'ajouterais un détail. La tail queue récursion n'est utilisable que pour les algos où l'appel recursif est la dernière chose effectuée dans ce programme. Ce n'est pas le cas de la plupart des algorithmes récursifs. Et pour ceux pour lequel c'est le cas, ils peuvent tous très facilement s'écrire avec une boucle while.
    On peut certainement. Je peux aussi faire du calcul numérique en Perl, mais je préférerais le faire en Python :). Réécrire du code à cause des déficiences du compilateur, bof, bof. Ce n'est pas toujours naturel. Dans le cas de la factorielle, je reconnais que la version impérative est aussi claire. Dans l'article WP sur la récursion terminale, il y a un meilleur exemple, le calcul du PGCD :
    def pgcd(a, b):
     if a == 0: return b
     if b == 0: return a
     if a >= b: return pgcd(a - b, b)
     else: return pgcd(a, b - a)
    Je veux bien que ceci puisse être réécrit avec une boucle while, mais l'écriture sera moins naturelle, et la démonstration que tu as vue en cours de maths sur la validité de cet algorithme ne sera plus valable, il faudra refaire un invariant de boucle (c'est d'ailleurs le cas sur la page WP : en:Euclidean_algorithm#Implementations.