caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Operateurs < et =
@ 1997-02-01 19:03 Valentin Bonnard
  1997-02-03  8:38 ` Pierre Weis
  0 siblings, 1 reply; 2+ messages in thread
From: Valentin Bonnard @ 1997-02-01 19:03 UTC (permalink / raw)
  To: caml-list

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

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.

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)

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


Valentin Bonnard
mailto:bonnardv@pratique.fr
http://www.pratique.fr/~bonnardv (Informations sur le C++ en Francais)







^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Operateurs < et =
  1997-02-01 19:03 Operateurs < et = Valentin Bonnard
@ 1997-02-03  8:38 ` Pierre Weis
  0 siblings, 0 replies; 2+ messages in thread
From: Pierre Weis @ 1997-02-03  8:38 UTC (permalink / raw)
  To: Valentin Bonnard; +Cc: caml-list

> 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







^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1997-02-03  8:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-02-01 19:03 Operateurs < et = Valentin Bonnard
1997-02-03  8:38 ` Pierre Weis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).