mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
update of README
This commit is contained in:
parent
151156fb43
commit
9ce511156e
1 changed files with 28 additions and 4 deletions
32
README.md
32
README.md
|
|
@ -2,7 +2,24 @@ ocaml-containers
|
||||||
================
|
================
|
||||||
|
|
||||||
A bunch of containers,written in different occasions. Probably not very high
|
A bunch of containers,written in different occasions. Probably not very high
|
||||||
quality, since not all containers are tested.
|
quality, since not all containers are tested (yet).
|
||||||
|
|
||||||
|
The design is centerred around polymorphism rather than functors. Such
|
||||||
|
structures comprise:
|
||||||
|
|
||||||
|
- `PHashtbl`, a polymorphic hashtable (with open addressing)
|
||||||
|
- `SplayTree`, a polymorphic splay heap implementation
|
||||||
|
- `Heap`, an imperative heap based on `SplayTree`
|
||||||
|
- `Graph`, a polymorphic imperative directed graph (on top of `PHashtbl`)
|
||||||
|
- `Hashset`, a polymorphic imperative set on top of `PHashtbl`
|
||||||
|
|
||||||
|
Other structures (not touched for months, may not work properly) are:
|
||||||
|
|
||||||
|
- `Cache`, a low level memoization cache for pairs of keys
|
||||||
|
- `Vector`, a growable array (pure OCaml, no C)
|
||||||
|
- `Deque`, an imperative double ended FIFO (double-linked list)
|
||||||
|
- `FlatHashtbl`, a deprecated open addressing hashtable with
|
||||||
|
a functorial interface (replaced by PHashtbl)
|
||||||
|
|
||||||
## Use
|
## Use
|
||||||
|
|
||||||
|
|
@ -11,6 +28,8 @@ files to your own project. The last solution has the benefits that you
|
||||||
don't have additional dependencies nor build complications (and it may enable
|
don't have additional dependencies nor build complications (and it may enable
|
||||||
more inlining). I therefore recommand it for its simplicity.
|
more inlining). I therefore recommand it for its simplicity.
|
||||||
|
|
||||||
|
If you have comments, requests, or bugfixes, please share them! :-)
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
You need the library `sequence`. With opam, type `opam install sequence`.
|
You need the library `sequence`. With opam, type `opam install sequence`.
|
||||||
|
|
@ -21,11 +40,16 @@ Then:
|
||||||
|
|
||||||
To build and run tests (requires `oUnit`):
|
To build and run tests (requires `oUnit`):
|
||||||
|
|
||||||
|
$ opam install oUnit
|
||||||
$ make tests
|
$ make tests
|
||||||
$ ./tests.native
|
$ ./tests.native
|
||||||
|
|
||||||
|
To build the small benchmarking suite (requires `Bench`):
|
||||||
|
|
||||||
|
$ opam install bench
|
||||||
|
$ make bench
|
||||||
|
$ ./benchs.native
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This code is free, under the BSD license. The module `leftistheap` is due
|
This code is free, under the BSD license.
|
||||||
to [Jean-Christophe Filliâtre](https://www.lri.fr/~filliatr/), under
|
|
||||||
the GPL license.
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue