• [^] # Re: A force...

    Posté par . En réponse au journal Typage statique pour Python. Évalué à 1. Dernière modification le 30 mai 2016 à 14:38.

    Ou alors ils pourraient implémenter un système d'inférence de type à la Hindley-Milner ce qui leur permettrait de faire du duck-typing avec un typage statique et fort. :-)

    (* définition avec annotations *)
    let rec pgcd (a:int) (b:int):int =
     match a mod b with
     | 0 -> b
     | r -> pgcd b r
    ;;
    val pgcd : int -> int -> int = <fun>
    (* la même sans les annotations *)
    let rec pgcd' a b =
     match a mod b with
     | 0 -> b
     | r -> pgcd' b r
    ;;
    val pgcd' : int -> int -> int = <fun>
    (* le système d'inférence s'en est sorti tout seul et a su typer correctement la fonction *)
    (* je ne sais plus le type de la fonction, je demande à la boucle REPL *)
    pgcd;;
    - : int -> int -> int = <fun>

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