Browse thread
Why + vs +. but "fake" parametric polymorphism for <
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ 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