[Haskell] ANN: data-ordlist-0.4, now with mergeAll and unionAll
leon.p.smith at gmail.com
Mon Feb 15 02:13:37 EST 2010
Data-Ordlist is a package of convenience functions for dealing with
ordered lists. It's had it's second release in 7 days, with
bugfixes, documentation improvements, and now two new functions.
Big thanks to Omar Antolín Camarena, Topi Karvonen, Heinrich
Apfelmus, and Dave Bayer for (knowingly or unknowingly) contributing
to this release!
Version 0.4: (2010-02-15)
* The "CHANGES" file was added to document the changes between releases.
* Documentation Improvements
* A rough first pass at a test suite
* The functions `mergeAll` and `unionAll` were added. They operate
on a possibly infinite list of possibly infinite ordered lists; assuming
the heads of the lists are ordered.
Thanks goes to Omar Antolín Camarena, Heinrich Apfelmus, and Dave Bayer.
Omar Antolín Camarena suggested the addition, located the article
used as the basis for the implementation, and was quite helpful with
testing and debugging.
Heinrich Apfelmus wrote his "Implicit Heaps" article, where he
simplified an algorithm by Dave Bayer. It is this article that forms
the basis of our implementation.
Dave Bayer posted his 'venturi' implementation to the haskell-cafe
mailing list on 2007 Jul 22. It also appears as "BayerPrimes.hs"
inside of Melissa O'Neill's "haskell-primes.zip":
Version 0.2: (2010-02-07)
* The module name was changed from `Data.OrdList` to `Data.List.Ordered`
* Fixed bugs in `insertSetBy`, `insertBagBy`, and `nub`. The insertion
functions assumed reversed lists, while `nub` failed to remove duplicates.
Thanks to Topi Karvonen for reporting the first issue!
* Changed semantics of `insertSetBy` slightly: the new version replaces an
element if it is already there. If the old semantics turns out to be
important, a new function can be added at a later date.
* Changed semantics of `nubBy`: the new version negates the binary relation,
so that `new_nubBy f == old_nubBy (not . f)`. It is now in better keeping
with the spirit of the rest of the library, and mades the bug in `nub`
* Better documentation, I hope. At the very least, the process of
documenting `nubBy` revealed the bug in `nub`.
More information about the Haskell