Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/takikawa/tr-pfds
Typed Racket data structure libraries
https://github.com/takikawa/tr-pfds
racket typed-racket
Last synced: 10 days ago
JSON representation
Typed Racket data structure libraries
- Host: GitHub
- URL: https://github.com/takikawa/tr-pfds
- Owner: takikawa
- Created: 2012-02-03T21:46:32.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2021-11-05T19:51:25.000Z (over 3 years ago)
- Last Synced: 2025-01-23T03:08:47.136Z (17 days ago)
- Topics: racket, typed-racket
- Language: Racket
- Homepage:
- Size: 2.77 MB
- Stars: 58
- Watchers: 7
- Forks: 13
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Functional Data Structures for Typed Racket
===========================================[![Build Status](https://travis-ci.org/takikawa/tr-pfds.svg?branch=master)](https://travis-ci.org/takikawa/tr-pfds)
[![Scribble](https://img.shields.io/badge/Docs-Scribble-blue.svg)](https://docs.racket-lang.org/functional-data-structures/index.html)This library provides several functional data structures based on the work
of Chris Okasaki and Phil Bagwell. Click the badge above the documentation.The original library was implemented by Hari Prashanth.
How to install
--------------Use one of:
* `raco pkg install pfds`
or
* `git clone git://github.com/takikawa/tr-pfds.git`
* `raco pkg install tr-pfds/`On Racket v5.3.1 or older, use `raco` to link this repository as
a Racket collection. Here are step-by-step instructions:* `git clone git://github.com/takikawa/tr-pfds.git`
* `cd tr-pfds/pfds`
* `raco link .`
* `raco setup pfds`This will link the `pfds` folder as a collection called `pfds`.
Then you can require, for example, the Bankers Deque by using
`(require pfds/deque/bankers)`.Data structures
---------------The following data structures are implemented:
* Deques
+ Bankers Deque `pfds/deque/bankers`
+ Implicit Deque `pfds/deque/implicit`
+ Real-Time Deque `pfds/deque/real-time`
* Heaps
+ Binomial Heap `pfds/heap/binomial`
+ Skew Binomial Heap `pfds/heap/skew-binomial`
+ Leftist Heap `pfds/heap/leftist`
+ Splay Heap `pfds/heap/splay`
+ Pairing Heap `pfds/heap/pairing`
+ Lazy Pairing Heap `pfds/heap/lazy-pairing`
+ Bootstrapped Heap `pfds/heap/bootstrapped`
* Queues
+ Bankers Queue `pfds/queue/bankers`
+ Physicist's Queue `pfds/queue/physicists`
+ Hood-Melville Queue `pfds/queue/hood-melville`
+ Implicit Queue `pfds/queue/implicit`
+ Real-Time Queue `pfds/queue/real-time`
* Random Access Lists
+ Binary Random Access List `pfds/ralist/binary`
+ Skew Binary Random Access List `pfds/ralist/skew`
* Catenable List `pfds/catenable-list`
* VList `pfds/vlist`
* Streams `pfds/stream`
* Red-Black Trees `pfds/red-black-tree`
* Tries `pfds/trie`
* Treap `pfds/treap`