https://github.com/fehrenbach/purescript-unordered-collections
Fast, hash-based, immutable collections.
https://github.com/fehrenbach/purescript-unordered-collections
purescript
Last synced: 15 days ago
JSON representation
Fast, hash-based, immutable collections.
- Host: GitHub
- URL: https://github.com/fehrenbach/purescript-unordered-collections
- Owner: fehrenbach
- License: mpl-2.0
- Created: 2018-05-20T12:29:57.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-08T16:13:43.000Z (over 1 year ago)
- Last Synced: 2025-10-06T21:12:43.775Z (about 1 month ago)
- Topics: purescript
- Language: PureScript
- Homepage: https://pursuit.purescript.org/packages/purescript-unordered-collections
- Size: 145 KB
- Stars: 26
- Watchers: 2
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-purescript - unordered-collections - Hash-based immutable Maps and Sets. (Data types)
README
# purescript-unordered-collections
[](https://travis-ci.org/fehrenbach/purescript-unordered-collections)
Hash-based, immutable collection types for PureScript.
The two main goals are good performance and API compatibility with the `Ord`-based collections wherever reasonable.
The implementation of `HashMap` is based on "Optimizing Hash-Array
Mapped Tries for Fast and Lean Immutable JVM Collections" (Steindorfer
and Vinju, OOPSLA 2015, https://doi.org/10.1145/2814270.2814312).
Performance
-----------
HashMaps are fast. Most common operations are 1.5x-3x faster than the
`Ord`-based map. Very limited testing puts `insert` and `lookup` at
around 10% faster than immutable.js.
Related
-------
- [purescript-ordered-collections](https://github.com/purescript/purescript-ordered-collections): ordered collections in PureScript
- [unordered-containers](http://hackage.haskell.org/package/unordered-containers): efficient hashing-based container types in Haskell
- [immutable.js](https://facebook.github.io/immutable-js/): immutable collections for JavaScript and TypeScript
- [io.lacuna.bifurcan](https://github.com/lacuna/bifurcan): high-quality Java implementations of mutable and immutable data structures
- [im-rs](http://immutable.rs): blazing fast immutable collection datatypes for Rust
Documentation
-------------
Module documentation is [published on Pursuit](https://pursuit.purescript.org/packages/purescript-unordered-collections).