• [^] # Re: explications?

    Posté par . En réponse à la dépêche Sortie de Rust en version 0.3. Évalué à 5.

    Je ne pense pas qu'il cherchait à comparer perl6 et haskel, juste à donner la solution en 2 autres langages que le C et Ocaml. D'ailleurs ce que l'on peut voir c'est que les versions C et Ocaml sont très simples dans un cas on fait une boucle dans l'autre une fonction récursive. C'est pour chacun d'eux une construction de base de leur paradigme respectif. La version perl6 utilise un mécanisme de réduction qui reste impératif (ça construit une liste et ça fait une réduction dessus, si je ne m'abuse) et haskel le gère via sa bibliothèque standard.

    Ces deux dernières versions sont particulièrement bien car non contente d'être plus courtes elles évite les bugs. La version c est particulièrement peu fiable : d'ailleurs il y a si je ne m'abuse 2 petites fautes dedans :

    • return acc; devrait être return n; ça le compilateur le vois
    • l'autre surviens quand on demande le factoriel de 0. Il itère alors sur 4294967295. Ça donne le bon résultat, mais c'est particulièrement lent (en rapport au calcul demandé). Oui un unsigned est rarement en dessous de 0.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)