5580

Bah, il a aussi testé un .exe sans le code source trivil

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5581

bool isOdd(int x) {
return (x / 2) != (x / 2.0);
}

Quand je vois ça, je dis caml powa ... ^^
avatar
I'm on a boat motherfucker, don't you ever forget

5582

Clairement :
let isOdd x =
  float_of_int (x / 2) != (float_of_int x) /. 2.0;;

roll

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5583

Ué fin bon y a quand mêmes les gardes-fous du float_of_int et du /., pour être sûr qu'on écrit pas des horreurs pareilles ... happy
avatar
I'm on a boat motherfucker, don't you ever forget

5584

C'est surtout parce que Caml est incapable de gérer des fonctions surchargées neutral 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.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5585

Caml est incapable de gérer des fonctions surchargées

C'est bien l'intérêt : ça évite d'écrire ces horreurs! smile
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5586

Quelles horreurs? C'est complètement indispensable! D'ailleurs, les développeurs de CAML aussi l'ont bien compris en essayant de créer une sorte de surcharge pour les fonctions de comparaison. Mais c'est affreusement mal foutu : on ne peut pas faire un ordre personnalisé, ni faire une fonction qui ressemble à la fonction d'ordre. Bof, quoi.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5587

une sorte de surcharge pour les fonctions de comparaison.

Mu? confus
on ne peut pas faire un ordre personnalisé, ni faire une fonction qui ressemble à la fonction d'ordre.

Mu? confus
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5588

µ
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

5589

^^
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5590

J'aimerais bien comprendre skidi...
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5591

il faut se mettre à sa place pour cela, et je n'en prendrais pas le risque...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5592

Pollux > qu'est-ce que tu veux faire avec des fonctions surchargées ? (et c'ets quoi exactement une fonction surchargée d'ailleurs ?)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

5593

Je dirais : ce sont deux fonctions différentes qui ont le même nom (mais pas le même type), le compilateur décidant de la fonction à utiliser selon le type des données.
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5594

ou alors ce sont deux prototypes de fonction qui pointent sur le même binaire, comme ça tu peux appeler l'un ou l'autre, ça plantera pas pareil smile
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5595

En tout cas, rien de tel n'existe en caml. Les fonctions de comparaison ne sont pas surchargées, elles ont un type polymorphe...
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5596

Hippohmu
:
une sorte de surcharge pour les fonctions de comparaison.

Mu? confus

prefix < : 'a -> 'a -> bool
on ne peut pas faire un ordre personnalisé, ni faire une fonction qui ressemble à la fonction d'ordre.

Mu? confus

Faire une fonction de comparaison qui, par exemple, compare les chaînes avec un ordre case-insensitive et qui compare les autres normalement.

Ce n'est qu'un exemple, mais ma critique porte en fait principalement sur le fait qu'il y a clairement une exception pour les fonctions de comparaisons, et que donc :
- les développeurs de CAML se sont bien rendu compte que c'était nécessaire d'avoir une forme de surcharge dans certains cas
- comme c'est built-in, on ne peut pas faire des trucs de ce style soi-même

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5597

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...

Oui, et? C'est qd même implémenté de manière surchargée... Je ne peux pas faire une telle fonction polymorphe moi-même, à moins de me restreindre justement aux fonctions de comparaison.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5598

Pollux
: prefix < : 'a -> 'a -> bool

Ben où est la surcharge? confus
C'est un type polymorphe (pas un scoop en caml..)
- les développeurs de CAML se sont bien rendu compte que c'était nécessaire d'avoir une forme de surcharge dans certains cas

Il n'y a pas de surcharge !!


(Je réfléchis à tes autres remarques smile )
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5599

ododo !!
avatar
Ad impossibilia nemo tenetur

5600

hippo> Si, dans l'implémentation. C'est là tout le pb.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5601

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>
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5602

sabrina
: ododo !!

allez vide ton sac !
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

5603

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>

<ens-specific> Test tongue </>

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

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5604

Note que je l'ai réécrite pour qu'elle termine quand même grin
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),

Si tu veux.
donc tu t'es effectivement restreint aux fonctions de comparaison.

Ben non.
Enfin tu as une façon capillotractée de t'exprimer...
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

1
^
This expression has type int but is here used with type bool cheeky


let grostest x y =
 [x;y]; Random.int 2;;


Ma foi, elle a marché chez moi!

hum... je réfléchis à ce que tu racontes, là
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5605

non !!!
avatar
Ad impossibilia nemo tenetur

5606

sisi grin
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

5607

trinon
avatar
Ad impossibilia nemo tenetur

5608

Note que je l'ai réécrite pour qu'elle termine quand même grin

Oui, j'avais vu qu'elle terminait pas, mais je n'ai pas fait la remarque puisque c'était loin d'être fondamental cheeky
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),
Si tu veux.

... ni d'autres paramètres extérieurs (variables globales, stdin...) J'ai hésité à en rajouter une couche pour être à l'abri de la tétracapillotomie, mais apparemment j'aurais du le faire dès le début :
let grostest x y =
 [x;y]; Random.int 2;;

roll


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 hehe 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...
(<contre-tétra> oui, je sais, le Caml sans exceptions est Turing-complete </userdefined>)

hum... je réfléchis à ce que tu racontes, là

D'où la tétracapillotomie pour gagner du temps et user de ma patience hehe

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5609

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

what
Ce n'est pas plus une surcharge que l'autre, juste un nouveau type polymorphe! (raise = exn -> 'a) confus
(Tant qu'à faire, tu peux aussi parler de la fonction exit : int -> 'a)

Mais je ne suis absolument pas convaincu. (contrairement à tes fonctions de comparaison, qui me donnent à réfléchir)
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

5610

chuis naze #pfiou#
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca