Crate memoized

Source
Expand description

Function memoization

§Example

use memoized::{memoize_rec, Memoized};

fn fib(n: u64) -> u64 {
    match n {
        0 | 1 => n,
        _ => fib(n - 1) + fib(n - 2)
    }
}

let mut fib_memo = memoize_rec(|fib, n: u64| {
    match n {
        0 | 1 => n,
        _ => fib(n - 1) + fib(n - 2)
    }
});

for n in 0..20 {
    assert_eq!(fib(n), fib_memo.call_cloned(n));
}

Structs§

Closure
A non-reentrant closure with signature: (A) -> R
RecursiveClosure
A recursive closure with signature: ( (A) -> R , A ) -> R

Traits§

Memoized
Represents a memoized function with the signature (A) -> R

Functions§

memoize
Memoizes the given function
memoize_rec
Memoizes a recursive function.