diff --git a/README.md b/README.md index 29833c2..a172d8a 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# fsharp-finger-trees +# Finger Trees in F# An implementation of a 2-3 finger trees data structure in F# (without laziness). -A finger tree is a data structure with first-order nested types using monoids and reductions (via generics/parametric polymorphism). The reference paper used was [Finger trees - a simple general-purpose data structure (Hinze, Paterson)](reference/Finger trees - a simple general-purpose data structure (Hinze, Paterson).pdf). +A finger tree is a data structure with first-order nested types using monoids and reductions (via generics/parametric polymorphism). The reference paper used was [Finger trees - a simple general-purpose data structure (Hinze, Paterson)](https://github.com/cantsin/fsharp-finger-trees/blob/master/reference/Finger%20trees%20-%20a%20simple%20general-purpose%20data%20structure%20(Hinze,%20Paterson).pdf?raw=true). Implementations on top of this finger tree structure include: -- random access sequence -- a priority queue -- an ordered sequence -- an interval tree +- random access sequences +- priority queues +- ordered sequences +- interval trees Performance: @@ -21,4 +21,4 @@ Performance: - (priority queue) find all: O(m * log(n/m)) - (ordered sequences) merge: O(m * log(n/m)); n and m are the lengths of the longer and shorter sequences -This library is feature complete, with a testing framework, but has not been optimized for speed (specific implementations would probably be faster). \ No newline at end of file +This library is feature complete, with some tests, but has not been optimized for speed (specific implementations would probably be faster). \ No newline at end of file