• [^] # 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é à -1.

    Pour continuer dans les problèmes de Python, pas de récursion utilisable :
    % python
    >>> def fac(n):
    ... def fac_aux(n, p):
    ... if n == 1:
    ... return p
    ... return fac_aux(n - 1, n*p)
    ... return fac_aux(n, 1)
    ...
    >>> fac(5)
    120
    >>> fac(999)
    [ ... ]
     File "<stdin>", line 5, in fac_aux
     File "<stdin>", line 5, in fac_aux
    RuntimeError: maximum recursion depth exceeded
    % perl
    sub fac {
     sub fac_aux {
     my ($n, $p) = @_;
     return $p if $n == 1;
     return fac_aux($n - 1, $n * $p);
     }
     my $n = shift;
     fac_aux($n, 1);
    }
    printf "\n%d - %d\n", fac(5), fac(1000000);
    ^D
    120 - -1
    (Bon, le résultat est numériquement faux, mais l'exemple porte sur la récursion; sinon j'aurais utilisé une bibliothèque bignum.) On ne parlera pas de l'impossibilité de dire qu'on veut déclarer à l'avance ses variables pour au moins éviter les typos (il paraît que c'est un avantage).