Skip to content
/ rust-fp Public

The Library for Functional Programming in Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

j5ik2o/rust-fp

Repository files navigation

rust-fp

rust-fp is a library for functional programming in Rust.

Install

[dependencies]
rust-fp-categories = "0.0.1"
rust-fp-pfds = "0.0.1"

Type-classes for categories

type-class j5ik2o/rust-fp JasonShin/fp-core.rs kitfre/Kinder 14427/hkt.rs aoprisan/func
Functor -
Pure - - -
Apply - - -
Applicativie(Pure+Apply) -
Bind - - -
Monad(Applicative+Bind) -
Empty - - -
Semigroup - - -
Monoid(Empty+Semigroup) -
Foldable - -
Show - - -
HList - - -
ForYield - -
TailRec - - -

Purely functional data structures

data name j5ik2o/rust-fp aoprisan/func
Stack -
Set -
Lazy -
IO -
Free -
Computation -

Performance Benchmarks

Below are benchmark results comparing rust-fp data structures with competing libraries.

Queue Operations

Implementation enqueue (µs) dequeue (µs)
ArrayQueue 7.07 3.33
ListQueue 4.09 2.96
OptimizedQueue 4.77 2.89
im::Vector 0.76 0.82
rpds::Queue 5.09 -

Stack Operations

Implementation push (ns) pop (µs) peek (ns)
ArrayStack 274.52 1.76 -
PersistentStack 2345.0 0.15 -
im::Vector 744.53 0.63 -
rpds::Stack 5091.4 1.82 -

Set Operations

Implementation insert (µs) member (µs)
BTreeSet 190.53 8.06
HashSet 2.34 2.74
TreeOptimized 129.28 16.65
im::OrdSet 2.42 0.83
std::BTreeSet 2.61 0.82
std::HashSet 2.89 1.10

Lower values indicate better performance. Benchmarks run on a standard development machine.

About

The Library for Functional Programming in Rust

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages