From: Mike Furr <furr@cs.umd.edu>
To: caml-list <caml-list@inria.fr>
Subject: [ANN] OCaml Reins 0.1 - Persistent Data Structure Library
Date: Tue, 25 Sep 2007 14:53:44 -0400 [thread overview]
Message-ID: <46F95938.7030107@cs.umd.edu> (raw)
I'm happy to announce the first source release of the OCaml Reins data
structure library available at:
http://ocaml-reins.sourceforge.net
This project started as an "OCaml Summer Project" and is now continuing
its development on sourceforge. The library already contains several
implementations of persistent data structures and will continue to grow
(possibly adding ephemeral data structures at some point if there's
interest).
Features of this release include:
* List data types:
o Single linked lists (compatible with the standard library type)
o O(1) catenable lists
o Acyclic double linked lists
o Random access lists with O(1) hd/cons/tl and O(log n)
lookup/update
* Double ended queues
* Sets/Maps with both polymorphic and monomorphic keys/values
o AVL
o Red/Black
o Big-endian Patricia
o Splay
* Heaps:
o Binomial
o Skew Binomial
* Zipper style cursor interfaces
* Persistent, bi-directional, cursor based iterators (currently only
for lists and sets)
* All standard types hoisted into the module level (Int, Bool, etc...)
* A collection of functor combinators to minimize boilerplate
(e.g., constructing compare or to_string functions)
* Quickcheck testing framework
o Each structure provides a gen function that can generate a random
instance of itself
* Completely safe code. No -unsafe or references to Obj.*
* Consistent function signatures. For instance, all fold functions
take the accumulator in the same position.
* All operations use no more than O(log n) stack space (except for a
few operations on splay trees which currently have O(log n) expected
time, but O(n) worst case)
Cheers,
-Mike
next reply other threads:[~2007-09-25 18:54 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-25 18:53 Mike Furr [this message]
2007-09-25 19:14 ` [Caml-list] " Daniel Bünzli
2007-09-25 19:30 ` Mike Furr
2007-09-25 22:16 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins 0.1 - Persistent Data Structure Library) Daniel Bünzli
2007-09-25 23:33 ` Cherry-picking modules (was " Sylvain Le Gall
2007-09-26 6:41 ` [Caml-list] " skaller
2007-09-26 7:22 ` Daniel Bünzli
2007-09-26 8:19 ` skaller
2007-09-26 8:30 ` Daniel Bünzli
2007-09-26 8:58 ` skaller
2007-09-26 9:49 ` Daniel Bünzli
2007-09-26 10:26 ` Sylvain Le Gall
2007-09-26 11:45 ` [Caml-list] " Jim Miller
2007-09-26 12:37 ` Sylvain Le Gall
2007-09-27 10:11 ` [Caml-list] " Richard Jones
2007-09-26 12:22 ` Daniel Bünzli
2007-09-26 12:58 ` skaller
2007-09-26 16:47 ` Sylvain Le Gall
2007-09-26 22:38 ` [Caml-list] " Vincent Aravantinos
2007-09-26 22:41 ` Vincent Aravantinos
2007-09-26 6:19 ` Cherry-picking modules (was Re: [Caml-list] " skaller
2007-09-26 15:08 ` Michael Furr
2007-09-26 17:12 ` skaller
2007-09-26 17:53 ` Mike Furr
2007-09-26 19:16 ` skaller
2007-10-05 14:42 ` Adrien
2007-10-05 14:58 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins 0.1- " Christoph Bauer
2007-10-05 15:21 ` Adrien
2007-10-05 19:45 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins0.1- " David Allsopp
2007-10-05 3:48 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins 0.1 - " Nathaniel Gray
2007-09-26 7:03 ` Maxence Guesdon
2007-09-26 7:44 ` skaller
2007-09-26 8:53 ` Maxence Guesdon
2007-09-26 10:05 ` Daniel Bünzli
2007-09-26 8:17 ` Daniel Bünzli
2007-09-26 15:32 ` Michael Furr
2007-09-26 15:50 ` Vincent Aravantinos
2007-09-26 16:42 ` Cherry-picking modules (was " Sylvain Le Gall
2007-09-26 17:38 ` [Caml-list] " skaller
2007-09-26 17:57 ` Vincent Aravantinos
2007-09-26 17:22 ` Cherry-picking modules (was Re: [Caml-list] " skaller
2007-09-26 18:17 ` Daniel Bünzli
2007-09-26 18:45 ` Mike Furr
2007-09-26 19:21 ` skaller
2007-09-26 5:51 ` ExtLib, etc. " David Teller
2007-09-26 20:37 ` [Caml-list] [ANN] OCaml Reins 0.1 - Persistent Data Structure Library Mike Furr
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=46F95938.7030107@cs.umd.edu \
--to=furr@cs.umd.edu \
--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