• [^] # Re: ouai

    Posté par . En réponse au journal Données vs Code. Évalué à 2. Dernière modification le 29 mars 2016 à 17:16.

    Notons bien aussi le type de use_any.
    - : < get : 'a; .. > -> 'a = <fun>

    Cela ressemble à une fonction polymorphique, mais contrairement au polymorphisme classique, le mode objet d'ocaml ne "fixe" pas le type polymorphique une foit qu'elle est utilisée. Comparons

    let use_length length =
     let _ = length [1] in
     let _ = length ["a"] in
     ();;
    Error: This expression has type bytes but an expression was expected of type
     int

    avec

    class ['a] mylist l = object method length = List.length l end
    let use_length' length =
     let a = length (new mylist [1]) in
     let b = length (new mylist ["a"]) in
     a+b;;
    (* val use_length' : ('a mylist -> int) -> int = <fun> *)