• [^] # Re: Ca marche aussi... Mais j'ai triché

    Posté par . En réponse au journal [Humour] vers un monde différent. Évalué à 2.

    C'est sûr que c'est pas très lisible pour un CM2. :-P

    L'écriture est lié au système de typage statique OCaml qui n'a pas de mécanisme à la type classes de Haskell. Du coup 2 est toujours interpréter comme étant de type int et ~$ est juste une notation infixe pour la fonction of_int.

    L'idée était surtout de montrer qu'il n'y avait aucune difficulté à faire du calcul formel sur les rationnels, avec pour seul limite la capacité mémoire de la machine (python le fait aussi) : c'est juste coûteux en mémoire et plus long en calcul, mais inutile dans la plupart des applications (d'où le recours aux flottants par défaut dans tous les langages).

    >>> from fractions import Fraction
    >>> # attention à bien utiliser des strings
    ... Fraction('2') - Fraction('1.8') - Fraction('0.2')
    Fraction(0, 1)
    >>> # avec les floats sa posera aussi problème
    ... Fraction(2) - Fraction(1.8) - Fraction(0.2)
    Fraction(-1, 18014398509481984)
    >>> Fraction('3') * Fraction('5/3')
    Fraction(5, 1)

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.