https://github.com/dirkgroot/fsharpx.radixtree
A general-purpose implementation of a Relaxed Radix Balanced tree.
https://github.com/dirkgroot/fsharpx.radixtree
data-structures fsharp fsharp-practice fsunit immutable-collections test-driven-development
Last synced: about 2 months ago
JSON representation
A general-purpose implementation of a Relaxed Radix Balanced tree.
- Host: GitHub
- URL: https://github.com/dirkgroot/fsharpx.radixtree
- Owner: dirkgroot
- License: mit
- Created: 2019-03-22T14:56:37.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-04-01T19:41:30.000Z (almost 7 years ago)
- Last Synced: 2025-01-18T10:50:17.367Z (about 1 year ago)
- Topics: data-structures, fsharp, fsharp-practice, fsunit, immutable-collections, test-driven-development
- Language: F#
- Homepage:
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FSharpx.RadixTree
This is an attempt to practice F# by (perhaps) creating something useful in the process.
My objective is to create a general-purpose implementation of a Relaxed Radix Balanced tree, based on the
[original paper by P. Bagwell and T. Rompf](https://infoscience.epfl.ch/record/169879/files/RMTrees.pdf).
Learning and practicing will be my primary goal with this, so I may never actually finish it. What do I want to
practice/learn, you might ask:
* Better understand the F# language itself (syntax, library);
* Test Driven Development with F#:
* xUnit;
* FsUnit;
* ...
* Performance measurement: When I've got a first version working, I'd like to do some tests to see how it performs;
* Probably more...
## Some background
To my surprise, F# does not have any built-in immutable collections which support (near) O(1) get/nth operations and
appending/slicing. Inspired by [this issue](https://github.com/fsprojects/FSharpx.Collections/issues/72)
on FSharpx.Collections (which has been inactive since july 2018), I figured that creating an RRB tree in F# might be a
nice learning experience.
So far, I'm having lots of fun :).