cerhu > comp.lang.* > comp.lang.caml

Prakash Countcham (24/10/2003, 11h50)
Bonjour,

Revient-il toujours au même de remplacer (false) par (1>2) dans un programme
caml (j'entends bien sûr à l'extérieur des chaînes de caractères, ...) ?

Prakash
Remi Vanicat (24/10/2003, 11h59)
Prakash Countcham <countcham_p.nos> writes:

> Bonjour,
> Revient-il toujours au même de remplacer (false) par (1>2) dans un
> programme caml (j'entends bien sûr à l'extérieur des chaînes de
> caractères, ...) ?


je n'en vois pas l'intérêt mais oui, comme 1>2 vaut false...>
Samuel Colin (24/10/2003, 12h25)
Dans l'article <87znfrq7lf.dlv>,
Remi Vanicat a tapoté :
> Prakash Countcham <countcham_p.nos> writes:
>> Bonjour,
>> Revient-il toujours au même de remplacer (false) par (1>2) dans un
>> programme caml (j'entends bien sûr à l'extérieur des chaînes de
>> caractères, ...) ?

> je n'en vois pas l'intérêt mais oui, comme 1>2 vaut false...>


Objective Caml version 3.06

# let (>)=Pervasives.(<);;
val ( > ) : 'a -> 'a -> bool = <fun>
# 1 > 2;;
- : bool = true

OK, je sors.
Prakash Countcham (24/10/2003, 13h10)
Samuel Colin wrote:
> Dans l'article <87znfrq7lf.dlv>,
> Remi Vanicat a tapoté :
>>je n'en vois pas l'intérêt mais oui, comme 1>2 vaut false...>


Si j'ai posé une telle question, c'est qu'il y a quand même un truc. Même si
1>2 vaut false.

> Objective Caml version 3.06
> # let (>)=Pervasives.(<);;
> val ( > ) : 'a -> 'a -> bool = <fun>
> # 1 > 2;;
> - : bool = true
> OK, je sors.


Comme je l'ai dit plus haut, 1>2 est vaut effectivement false (cf. points de
suspensions dans le mail de départ qui disent que l'on s'intéresse à point du
langage).

Prakash
Samuel Thibault (24/10/2003, 23h51)
Le ven 24 oct 2003 11:50:33 GMT, Prakash Countcham a tapoté sur son clavier :
> Revient-il toujours au même de remplacer (false) par (1>2) dans un
> programme caml (j'entends bien sûr à l'extérieur des chaînes de caractères,
> ...) ?


23:47@bouh~¤ ocaml
Objective Caml version 3.07+2

# false == (1<2);;
- : bool = false
#
23:49@bouh~¤ cat test.ml
let _ = if false == (1<2) then print_string "ok\n"
23:49@bouh~¤ ocamlc test.ml -o test
23:49@bouh~¤ ./test
23:50@bouh~¤ ocamlopt test.ml -o test
23:50@bouh~¤ ./test
23:50@bouh~¤

Après, je ne sais pas ce que ça vaut...

++
Prakash Countcham (27/10/2003, 14h26)
Samuel Thibault wrote:
> 23:47@bouh~¤ ocaml
> Objective Caml version 3.07+2
> # false == (1<2);;
> - : bool = false


Mais je n'obtiens pas le même résultat avec (1>2) :)

$ocaml
Objective Caml version 3.07+2

# false == (1>2);;
- : bool = true

> Après, je ne sais pas ce que ça vaut...


Bon, je vais dire à quoi je pensais (si par le plus grand hasard ça intéressait
quelqu'un) :

assert(false) et assert(1>2) n'ont pas le même type.
Olivier Andrieu (27/10/2003, 15h07)
Prakash Countcham <countcham_p.nos> writes:
> > Après, je ne sais pas ce que ça vaut...

> Bon, je vais dire à quoi je pensais (si par le plus grand hasard ça
> intéressait quelqu'un) :
> assert(false) et assert(1>2) n'ont pas le même type.


Ah ben voilà, il fallait le dire. Effectivement `assert false' est
traité de manière un peu particulière par le compilo :
,----
| As a special case, assert false is reduced to raise (Assert_failure
| ...), which is polymorphic (and is not turned off by the -noassert
| option).
`----
Dans les autre cas, `assert expr' a pour type unit.

Le but étant de pouvoir utiliser assert de cette façon (par exemple) :

let unoption = function
| Some x -> x
| None -> assert false
Samuel Thibault (27/10/2003, 21h37)
Le lun 27 oct 2003 13:26:35 GMT, Prakash Countcham a tapoté sur son clavier :
> Mais je n'obtiens pas le même résultat avec (1>2) :)


Hum :)
Discussions similaires
[HS] Enigme

Enigme

énigme 2

enigme ...


Fuseau horaire GMT +2. Il est actuellement 21h45. | Privacy Policy