
hello all~ I'm pleased to announce the initial version of list-extras, a home for common not-so-common list functions. There are many simple but non-trivial functions for lists which Data.List lacks. Typically we write a version and include it in a larger project or store it in a local source tree for personal jobs. But neither of these approaches makes it easy to distribute the code and take advantage of open-source development for improving the code. Since I had code from both approaches, I'm taking the first step and putting a package out there. So far it's not too large though I'll be adding things as they come up. If you have functions you think would belong, feel free to contact me. list-extras includes: - Prelude.Listless This module provides the "Prelude" but removing all the list functions. This is helpful for modules that overload those function names to work for other types. - Data.List.Extras.LazyLength This module provides least-strict functions for getting a list's length and doing natural things with it. On GHC this module also uses rewrite rules to convert certain calls to 'length' into our least-strict versions. [We could do this inefficiently by defining a version of 'length' which returns a Peano integer, but this module is more efficient.] - Data.List.Extras.Pair This module provides safe zipping functions which will fail (return 'Nothing') on uneven length lists. [We could do this by getting the lengths first and comparing, but this module is less strict when the lengths are uneven, and we only traverse the lists once.] - Data.List.Extras.ArgMax This module provides variants of the 'maximum' and 'minimum' functions which return the element for which some function is maximized or minimized. [We could do this by a decorate-fold-undecorate pattern, but this version is more space efficient.] Links to the hackage and darcs copies of list-extras can be found at: http://code.haskell.org/~wren/ -- Live well, ~wren

Hello wren, Wednesday, July 23, 2008, 6:46:01 AM, you wrote:
I'm pleased to announce the initial version of list-extras, a home for common not-so-common list functions.
MissingH library contained a lot of them too. i know that John Goerzen started to break it into area-specific libs, so may be you can join your efforts? -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com
participants (2)
-
Bulat Ziganshin
-
wren ng thornton