Skip to content

Sunlighter/TreeListLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TreeListLib

This is an F# immutable list data structure based on balanced trees.

This data structure can be used wherever the ImmutableList<T> from Microsoft's immutable collections can be used, but the interface of this library follows F# idioms more closely.

Since F# already offers immutable sets and maps, it might be easier to drop this into your project than to take a dependency on the immutable collections. (I really like using Microsoft's immutable collections in C#, actually...)

This implementation is based on 2-3 trees which are a precursor of red-black trees. I learned about 2-3 trees from a book by Robert Sedgewick, and I wrote prototypes of this code in Scheme and OCaml before porting it to F#.

Operations such as insertion, replacement, and deletion occur in logarithmic time.

Although the solution and project files were created with VS 2017, the F# code should probably run on implementations as old as VS 2010. This project compiles the code for .NET Standard 2.0.

NuGet

A compiled version of this code is available on NuGet as Sunlighter.TreeListLib.

About

An F# immutable list data structure.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages