caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Alain.Frisch@ens.fr
To: "Yaron M. Minsky" <yminsky@cs.cornell.edu>
Cc: Caml List <caml-list@inria.fr>
Subject: Re: [Caml-list] Big_int comparisons
Date: Mon, 2 Feb 2004 13:23:55 +0100 (MET)	[thread overview]
Message-ID: <Pine.SOL.4.44.0402021312180.19457-100000@clipper.ens.fr> (raw)
In-Reply-To: <1075664556.29371.6.camel@flapdragon.homeip.net>

On Sun, 1 Feb 2004, Yaron M. Minsky wrote:

> Does anyone know why there's no support for Big_int comparisons?

Do you mean the generic comparison functions ?  The reason is that the
type big_int is a Caml record type, and it is not possible to attach
custom comparison functions to the values of such types. One could imagine
adding a comparison function to the underlying nat objets (which are
custom blocks), which would allow using the generic comparison functions
on big_int objects. The problem is that even if the order on nat is the
natural order on non-negative integers, the induced order on big_int will
not be the natural order on integers. Even worse for the num type, which
admit several representation for the same numer.

This is annoying, because you cannot use the generic comparison functions
on large datastructures which contains somewhere deep in the structure
some nat, big_int or num. Even if you don't care about the meaning
of the ordering (you only need one ordering to implement some kind of
set).

A solution could be to allow attaching custom generic operations to
non-custom blocks (for instance, by boxing values in a block with a
special GC tag + the custom operations; i.e.: custom blocks whose content
is traced by the GC). This could be implemented with custom blocks by
registering/unregistering global roots, but I guess the performance would
be bad.


  Alain

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  reply	other threads:[~2004-02-02 12:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-01 19:42 Yaron M. Minsky
2004-02-02 12:23 ` Alain.Frisch [this message]
2004-02-02 12:34   ` Yaron M. Minsky
2004-02-02 13:36     ` Alain.Frisch
2004-02-03  9:52   ` skaller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.SOL.4.44.0402021312180.19457-100000@clipper.ens.fr \
    --to=alain.frisch@ens.fr \
    --cc=caml-list@inria.fr \
    --cc=yminsky@cs.cornell.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).