mkirchner / hamt Goto Github PK
View Code? Open in Web Editor NEWA hash array-mapped trie implementation in C
License: MIT License
A hash array-mapped trie implementation in C
License: MIT License
There are a few macros that should be renamed to allow for clearer presentation:
tagged -> tag
untagged -> untag
is_value -> is_leaf // ?
hi, could you please teach me which the tool you used to draw the nice graphs in readme
"You're also missing a batch construction call, create a new tree out of N key/value pairs. That's much faster than inserting one at a time because you can sort the array up front and then create the tree without any temporary nodes."
Not sure if this is feasible since the sorting is defined by the hash function...
The naming of the foundational structs is confusing and does not align well with the explanations in the docs
struct kv -> struct leaf
struct table -> struct node (or internal or leave as table?)
"Because it's a tree, operations like union and difference of two instances can be sublinear in the size of the instances. E.g. union can copy subtrees when the other instance has empty at the corresponding position."
It's really just a bad habit.
I've been studying HAMT recently, and there's very limited public information available. I consider myself fortunate to have come across this repository, and the material you've provided has been of great help to me. Additionally, I wanted to ask if you've considered adding concurrency support. I understand that implementing concurrency for persistent data structures might not be overly complex, and hazard pointers could potentially be used. Do you have any thoughts on this? :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.