Version française
Home     About     Download     Resources     Contact us    
Browse thread
Operateurs < et =
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Pierre Weis <Pierre.Weis@i...>
Subject: Re: Operateurs < et =
> Pourquoi n'est il pas possible de definir l'egalite et l'ordre
> sur un type en Caml ? Bien sur je peut definir des fonctions
> est_egal et inferieur_a mais comme les fonctions du module eq
> sont polymorphes je voudrait definir ces fonctions sur mes
> types (exemple: le type fraction).

Ceci est une autre histoire, en ce sens que c'est tre`s difficile a`
imple'menter et a` typer. Si vous savez le faire dites le nous.

> De plus la notion d'ordre physique pourrait etre 
> interressante; de meme qu'il y a deux comparaisons, une 
> correcte et une rapide = et ==, il pourrait y avoir deux
> ordre, un correct (2/4 < 1/1) et un artificiel (un ordre
> quelconque defini y compris sur les fonctions).
> 
> Cet ordre rapide pourrai etre la comparaison des addesses,
> la comparaison des representations (memcmpr) ou quelque 
> chose comme ca.

Le proble`me est que la comparaison des adresses fait l'hypothe`se que
les objets ne se de'placent pas dans la me'moire, ce qui n'a aucune
raison d'e^tre vrai dans toutes les imple'mentations, et qui est faux
en particulier en Caml Light et O'Caml.

> Abstract: why isn't it possible to define the equalty and 
> order over a user defined type ? (2,4 < 1,1 but 2/4 < 1/1)

Because we don't know how to implement it. Design a type system and a
compiler for that, then publish an article in POPL.

> Also like there are = and ==, why isn't there a fast
> physical comparison defined for all types (even functions) ?

As above, we don't know how to implement it, particularly when objects
may move (due to the memory manager, and the fast generational garbage
collector as in Caml Light and O'Caml).

Pierre Weis

INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://pauillac.inria.fr/~weis