[Haskell] AVL library update available.
ahey at iee.org
Sun Jun 26 15:23:28 EDT 2005
..you can find the another release of the Data.Tree.AVL library.
A few notes about this release:
The library is not intended to provide an elegant api or to be a
model of what general purpose collection classes should look like.
It just aims to provide raw AVL operations as efficiently and
flexibly as possible.
This version and the Data.COrdering library have had a major
purge of 1 line trivia (which I decided were really little more
than name space pollution in practice). I'm sure that anybody
using it is quite capable of writing whatever trivia they need
so I decided to try and restrict myself to the stuff you really
don't want to have to write yourself if you can avoid it. So
the Map module has been removed completely.
This release has also had a Zipper module added, which should
be useful for implementing many of those awkward operations not
covered by the main library.
Earlier (on the libraries list I think), I said I would also
include AVL tree based clones of Data.Set and Data.Map. I did
start on this but then stopped as I don't think there's any
point. The native AVL api is more useful (in my completely
biased and not at all humble opinion :-). But these clones
are about 75% complete so if somebody really wants them finished
I might be persuaded to do this. In the meantime there's are some
conversion utilities to convert between AVL trees and Data.Set,
The library is not yet cabalised as there are apparently some
difficulties using cabal with the ghc -split-objs option
(which I use to reduce the bloat of executables). But the
makefile enclosed should work OK on *nix environments for
ghc 6.4 only (it uses new package descriptions so won't work
with earlier ghc versions). The source code should be OK with
other Haskells too, but the makefile assumes ghc. I haven't
tried building under windows (shouldn't be too hard but makefile
would probably need some hacking).
I'd like to think this is reasonably complete (and stable) now,
but it almost certainly isn't complete. So if anybody has any
feature requests please let me know. I've marked the modules
as being "stable", so I promise not to introduce any radical
api changes or disappearances in future releases.
More information about the Haskell