
Ca se voit que tu n'as pas eu la mauvaise idée de faire un compresseur MP3 en CAML... La syntaxe est vraiment lourdingue au possible.Caml est incapable de gérer des fonctions surchargées

une sorte de surcharge pour les fonctions de comparaison.
on ne peut pas faire un ordre personnalisé, ni faire une fonction qui ressemble à la fonction d'ordre.


Hippohmu
:une sorte de surcharge pour les fonctions de comparaison.
Mu?
on ne peut pas faire un ordre personnalisé, ni faire une fonction qui ressemble à la fonction d'ordre.
Mu?
Hippohmu
: En tout cas, rien de tel n'existe en caml. Les fonctions de comparaison ne sont pas surchargées, elles ont un type polymorphe...
Pollux
: prefix < : 'a -> 'a -> bool
- les développeurs de CAML se sont bien rendu compte que c'était nécessaire d'avoir une forme de surcharge dans certains cas
)Pollux
: Je ne peux pas faire une telle fonction polymorphe moi-même, à moins de me restreindre justement aux fonctions de comparaison.
let contrepollux x y = [x;y]; true ;; val contrepollux : 'a -> 'a -> bool = <fun>
sabrina
: ododo !!
Hippohmu
:Pollux
: Je ne peux pas faire une telle fonction polymorphe moi-même, à moins de me restreindre justement aux fonctions de comparaison.let contrepollux x y = let hd = function a::_ -> a in [x;y;hd [] ]; true ;; val contrepollux : 'a -> 'a -> bool = <fun>
</>
Pollux
: Manque de pot, tu n'as pas fait qqch qui dépend de plus que les fonctions de comparaison (i.e. de la valeur de x<y et de la valeur de x=y),
donc tu t'es effectivement restreint aux fonctions de comparaison.
Par exemple, je te mets au défi de me faire une fonction polymorphe 'a -> 'a -> bool telle que
f(1.0,2.0) = 1 f(1,2) = 0
let grostest x y = [x;y]; Random.int 2;;

Note que je l'ai réécrite pour qu'elle termine quand même
PolluxSi tu veux.
: Manque de pot, tu n'as pas fait qqch qui dépend de plus que les fonctions de comparaison (i.e. de la valeur de x<y et de la valeur de x=y),
let grostest x y = [x;y]; Random.int 2;;
Je sais plus trop si je pourrais retrouver, mais j'ai le souvenir d'un TP de Caml en prépa où j'étais tombé sur un truc qui pouvait se gérer facilement avec les exceptions, mais qui était à peu près impossible à faire sans...
hum... je réfléchis à ce que tu racontes, là

Au fait, une autre forme de surcharge, c'est les exceptions : ça transforme un truc avec une valeur de retour avec un type bien défini en un truc avec un type qui peut être absolument quelconque