Version française
Home     About     Download     Resources     Contact us    
Browse thread
Why + vs +. but "fake" parametric polymorphism for <
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Diego Olivier FERNANDEZ PONS <diego.fernandez_pons@e...>
Subject: Re: [Caml-list] Why + vs +. but "fake" parametric polymorphism for <
     Bonjour,

Quoting Luc Maranget <luc.maranget@inria.fr>:
>>> This is simply the logic of the .mli.
>>
>> Very well, but why ?
>
> By design, I guess.

Oui mais pourquoi ?

Allez... je retombe en enfance.

Quand j'étais petit, j'ai voulu mettre une annotation de type dans mon  
code Caml du genre:
val fib : int -> int
let rec fib = function ...

Et on m'a dit "Ah non mon garçon, ça c'est du Haskell. En Caml on met  
les annotations dans le .mli, c'est d'ailleurs ça le _veritable_  
esprit de l'inférence de types : ne pas avoir besoin d'écrire de types".

Il faut reconnaître que l'on a tout fait pour rendre les annotations  
de type dans le code totalement illisibles - comparativement à Haskell  
par exemple. Et tout fait pour que le .mli soit aisément utilisable  
(Ctrl-C Ctrl-A sous Emacs, outils de documentation, etc.)

Mais après on me dit que si je mets mes annotations de type dans le  
.mli c'est moins bien que si je les mets dans le .ml avec la syntaxe  
illisible car les optimisations ne sont pas faites.

Et l'esprit de l'inférence de types alors ?

         Diego Olivier