* ANN: pfds v0.2
@ 2012-11-23 16:02 Ian Price
0 siblings, 0 replies; only message in thread
From: Ian Price @ 2012-11-23 16:02 UTC (permalink / raw)
To: guile-user; +Cc: vicare-users
Hi folks,
After 11 months, I've decided to release version 0.2 of pfds.
* What is it?
pfds is a collection of purely functional data structures, written in
pure R6RS Scheme. It is intended to be portable across a number of
different Scheme implementations, and has been tested on Guile 2.0,
Racket 5.2, and trunk IronScheme[0].
* What's changed?
** Changes to existing modules
- (pfds bbtrees)
'bbtree-ordering-procedure' has been documented.
- (pfds sets)
'set-ordering-procedure' has been exported and documented.
- (pfds queues)
The procedures 'list->queue' and 'queue->list' have been added and
documented.
- (pfds deques)
The procedures 'list->deque' and 'deque->list' have been added and
documented.
** Bug Fixes
- (pfds deques)
The sizes of the streams stored in the deque data structure were
being updated incorrectly. This would result in frequent errors when
using the deques module. This has been corrected.
** New Modules
Since last release, I have added five new modules. They are all
documented at the top of the respective files.
- (pfds dlists)
dlists are a well known trick in the functional programming for
representing lists with efficient append.
- (pfds psqs)
psqs or "priority search queues" are a combination of heaps and
finite maps. These were added at the suggestion of Andy Wingo.
- (pfds heaps)
A simple priority queue implementation based on leftist heaps.
- (pfds fingertrees)
A generalisation of deques, that allow for incrementally maintaining
an aggregate value.
- (pfds sequences)
A generic sequence implementation written as an example of how to
use fingertrees.
* Where can you get it?
Source code is available on github
https://github.com/ijp/pfds/archive/v0.2.zip
Guildhall/Dorodango users can access it from my repository[1]
Simply use "guild update" to obtain the latest repository, and then
either "guild install pfds" or "guild upgrade" if you already have
version 0.1 installed.
* The future
For version 0.3, I'd like to add a few additional data structures,
such as HAMTs if at all feasible. I also intend to work on optimizing
the existing implementations, since the constant factors can be quite
high.
If you have any functional data structures you would like added, that
you just want to tell me about, bug reports, feature requests,
examples or benchmarks you'd like me to do better on, do email me.
Cheers,
0. Thank you leppie.
1. If you are not using it already, you can get started by reading
https://github.com/ijp/guildhall/wiki/Getting-Started
--
Ian Price -- shift-reset.com
"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2012-11-23 16:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-23 16:02 ANN: pfds v0.2 Ian Price
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 read-only IMAP folder(s) and NNTP newsgroup(s).