<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2003/11/4d47045d2b8c12d333c06969e3119ff7"
  from="Harrison, John R &lt;johnh@i...&gt;"
  author="Harrison, John R"
  date="2003-11-06T16:41:11"
  subject="[Caml-list] Efficient and canonical set representation?"
  prev="2003/11/2059b898168c9410d8d3244108237a14"
  next="2003/11/3f74815bcdd9c10e851e4593088d7d62"
  next-in-thread="2003/11/6cebc068448cd67feb91c54909c26d81"
  prev-thread="2003/11/272973bb60ea7c7353e7e93caaaffba9"
  next-thread="2003/11/dc476b21502f19abf3cbe8dc40f256bb"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Efficient and canonical set representation?">
<msg 
  url="2003/11/4d47045d2b8c12d333c06969e3119ff7"
  from="Harrison, John R &lt;johnh@i...&gt;"
  author="Harrison, John R"
  date="2003-11-06T16:41:11"
  subject="[Caml-list] Efficient and canonical set representation?">
<msg 
  url="2003/11/6cebc068448cd67feb91c54909c26d81"
  from="Brian Hurt &lt;bhurt@s...&gt;"
  author="Brian Hurt"
  date="2003-11-06T17:03:25"
  subject="Re: [Caml-list] Efficient and canonical set representation?">
</msg>
<msg 
  url="2003/11/8e4bb7df1307031640c93d02c75186de"
  from="Eray Ozkural &lt;exa@k...&gt;"
  author="Eray Ozkural"
  date="2003-11-07T03:43:17"
  subject="Re: [Caml-list] Efficient and canonical set representation?">
</msg>
<msg 
  url="2003/11/839330ec827afc2945d89edbbaf6a8c3"
  from="Eray Ozkural &lt;exa@k...&gt;"
  author="Eray Ozkural"
  date="2003-11-07T03:52:15"
  subject="Re: [Caml-list] Efficient and canonical set representation?">
</msg>
</msg>
</thread>

<contents>
Does anyone know a representation of finite sets over an orderable polymorphic type
that's (1) efficient and (2) canonical? Even better would be a CAML or OCaml
implementation. More precisely I'm looking for:

  1. Log-time lookup and insertion, and linear-time union, intersection etc.

  2. Equal sets are represented by the same object.

For example, ordered lists satisfy (2) but only part of (1), while all the variants
of balanced trees I can remember that satisfy (1) --- AVL trees etc. --- fail (2).

Thanks,

John.

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

</contents>

</message>

