42Fermer44
PolluxLe 01/07/2004 à 21:55
Sally :
Le typage manuel est tout à fait possible en caml hein Pollux ^^
au lieu de let id x = x, tu peux écrire let id (x:int) = x, auquel cas tu obtiens une fonction de type int -> int au lieu de 'a -> 'a
et tu peux aussi forcer le type de ta fonction (auquel cas si jamais tu te goures dedans ça refusera de compiler au lieu de te donner un type qui n'est pas celui que tu voulais, ceci dit ce dernier cas est en général très facile à détecter, soit en balançant ta fonction dans le toplevel juste après l'avoir écrite, pratique recommandée ^^, et constatant qu'elle n'a pas le bon type, soit, même si tu le fais pas, à l'utilisation de la fonction très vraisemblablement... mais si tu préfères forcer, rien ne t'en empêche smile)

Euh oui bien sûr mais ce n'est pas du tout de ça que je parle...
Euh sinon, c'est quoi les contraintes dont tu parles confus Le typage auto « rajoute tellement de contraintes sur le langage... » confusconfus
Là je ne vois pas *du tout* de quoi il peut bien s'agir neutral

Je ne sais pas du tout si les conversions automatiques et autres surcharges sont faisables avec un typage automatique... Peut-être que c'est possible, je n'en sais rien, mais en tout cas toujours est-il qu'à peu près tous les langages couramment utilisés (C, C++, Java, C#, Perl...) ont une certaine forme de surcharge et de conversion auto (au moins built-in, comme en C ou en Perl -- même si je trouve cette solution [celle de le restreindre aux types builtin] moyennement satisfaisante intellectuellement, c'est pratique), alors qu'OCaml n'en a pas. Alors soit tous les autres langages ont tort et tout le monde va utiliser OCaml justement parce qu'il n'a pas de surcharge et que c'est Tellement Plus Propre ©, soit on peut se poser la question de savoir si cette absence n'est pas liée au fait que sachant que le typage est automatique, ça pourrait imposer de forte contrainte sur le typage d'avoir ce genre de chose (de même que le fait qu'il y ait un typage automatique impose, par exemple, que les namespaces des records soit totalement disjoints [une aberration, entre nous soit dit roll]).

A vrai dire comme ça a certainement déjà été posé sur la mailing list d'OCaml, y aurait pas un Kevinoïde de passage dans le coin pour nous dire si ça a été envisagé/refusé/prévu/abandonné ?