caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: james woodyatt <jhw@conjury.org>
To: Caml Traders <caml-list@inria.fr>
Subject: Re: [Caml-list] Priority queues, reloaded
Date: Sat, 9 Jul 2011 11:45:52 -0700	[thread overview]
Message-ID: <02CF6390-37A1-4707-88B4-B139262E60F9@conjury.org> (raw)

"Jon Harrop" <jon@ffconsultancy.com> asks about heaps and priority queues in Ocaml:
> 
> Anyone got this in OCaml?

I released this years ago.  It's stable, meaning I use it all the time, and I never touch it.

   <https://bitbucket.org/jhw/oni>

From the README in the Cf library:

>> Highlighted features include:
>> 
>> - Functional streams and stream processors (extended).
>> - Functional bootstrapped skew-binomial heap.
     *******************************************
>> - Functional red-black binary tree (associative array).
>> - Functional sets based on red-black binary tree.
>> - Functional real-time catenable deque.
>> - Functional LL(x) parsing using state-exception monad.
>> - Functional lazy deterministic finite automaton (DFA).
>> - Functional lexical analyzer (using lazy DFA and monadic parser).
>> - Functional substring list manipulation (message buffer chains).
>> - Gregorian calendar date manipulation.
>> - Standard time manipulation.
>> - System time in Temps Atomique International (TAI).
>> - Unicode transcoding.
>> - Universal resource identifier (URI) manipulation.
>> - Extended socket interface (supports more options, and UDP w/multicast).
>> - I/O event multiplexing (with Unix.select).
>> - Functional XML stream parsing and generation
>> - Functional MIME stream parsing and generation

Among other treasures, it has priority queues built with the bootstrapped skew-binomial heaps.

  <https://bitbucket.org/jhw/oni/src/ef09a44a61ea/cf/cf_pqueue.mli>
  <https://bitbucket.org/jhw/oni/src/ef09a44a61ea/cf/cf_sbheap.mli>

Nobody knows about my Oni project because I rarely put any effort into promoting it, but its Cf library is an excellent alternative to the OCaml standard library in many ways.  There is a GODI package for it, of course, but the OCaml With Batteries people settled on a more popular alternative (and who can blame them) so again nobody knows about it.  Nevertheless, if you need the complete array of functional data structures in OCaml, you should look at the Cf library I wrote.  It's pretty good.


—
j h woodyatt <jhw@conjury.org>
http://jhw.dreamwidth.org/



             reply	other threads:[~2011-07-09 18:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-09 18:45 james woodyatt [this message]
     [not found] ` <14B0DF03-EF83-4568-AB34-6B51BCE4B574@recoil.org>
2011-07-09 18:56   ` james woodyatt
     [not found] <fa.V8myB/rA6OKILQg+GW40f8c1BGo@ifi.uio.no>
2011-07-02 12:24 ` Radu Grigore
2011-07-02 19:05   ` Andrew
2011-07-02 22:42   ` Radu Grigore
2011-07-10 17:55     ` Jon Harrop
     [not found] <848371343.3424870.1309454037170.JavaMail.root@zmbs3.inria.fr>
2011-06-30 18:03 ` Daniel de Rauglaudre
     [not found] <sfid-j-20110630-131704-+2.76-1@multi.osbf.lua>
2011-06-30 17:13 ` Andrew
2011-06-30 17:26   ` Gabriel Scherer
2011-06-30 18:14     ` Jean-Christophe Filliâtre
2011-06-30 18:36     ` Jean-Christophe Filliâtre
2011-07-09  9:02       ` Jon Harrop
2011-07-09 19:22         ` Jean-Christophe Filliâtre
2011-07-10 18:04           ` Jon Harrop
2011-06-30 19:13     ` Andrew
2011-06-30 22:17     ` Wojciech Meyer
2011-07-02  1:49   ` Norman Ramsey
2011-07-09  9:05   ` Jon Harrop

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=02CF6390-37A1-4707-88B4-B139262E60F9@conjury.org \
    --to=jhw@conjury.org \
    --cc=caml-list@inria.fr \
    /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).