Flux.Collections 1.4.1-alpha

This is a prerelease version of Flux.Collections.
dotnet add package Flux.Collections --version 1.4.1-alpha                
NuGet\Install-Package Flux.Collections -Version 1.4.1-alpha                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Flux.Collections" Version="1.4.1-alpha" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Flux.Collections --version 1.4.1-alpha                
#r "nuget: Flux.Collections, 1.4.1-alpha"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Flux.Collections as a Cake Addin
#addin nuget:?package=Flux.Collections&version=1.4.1-alpha&prerelease

// Install Flux.Collections as a Cake Tool
#tool nuget:?package=Flux.Collections&version=1.4.1-alpha&prerelease                

What is Flux.Collections

Flux.Collections is a set of functional data structures.

Hash Array Mapped Trie (Map and Set)

HamtMap and HamtSet are both based on the same idea of using a trie and the keys' hash to store the key-value pairs. Clojure's map is a well known implementation of a Hamt.

Both have a O(log<sub>32</sub>) or O(log<sub>64</sub>) (depending on the prefix size used at compile time) time complexity for insert, find and delete operations.

SkewBinaryRandomAccessList[^1]

This is a random access list that supports the list operations const, head, tail, but allows O(log<sub>2</sub>) access to any element by its index.

Queues[^1]

Queue and RealTimeQueue are just queues. Queue has a O(1) amortized time for inserting and popping items, while RealTimeQueue has a O(1) time for the same operations. However in a long sequence of operations, Queue should have a better overall performance than it's real time counterpart.

SkewBinomialHeap[^1]

It's a heap (priority queue) using an idea similar to that of the SkewBinaryRandomAccessList

Stream[^1]

Stream is a lazy list implementation.

[^1]: Based on Chris Okasaki's "Purely Functional Data Structures"

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.4.1-alpha 65 7/20/2024
1.4.0-alpha 166 12/4/2023
1.3.7-alpha 192 8/30/2021
1.3.6-alpha 178 8/23/2021
1.3.5-alpha 185 8/21/2021
1.3.4-alpha 186 8/21/2021
1.2.1-alpha 190 8/16/2021
1.1.1-alpha 286 5/29/2020