Mercurial > lbo > hg > memoize
view examples/recursive.rs @ 106:bb57757a7727 default tip
Added tag v0.4.1 for changeset 793f2e38a318
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Fri, 27 Oct 2023 20:22:19 +0200 |
parents | 3ed9875b9139 |
children |
line wrap: on
line source
use memoize::memoize; #[memoize] fn fib(n: u64) -> u64 { if n < 2 { 1 } else { fib(n - 1) + fib(n - 2) } } #[memoize] fn fac(n: u64) -> u64 { if n < 2 { 1 } else { n * fac(n - 1) } } fn main() { let fibs = (0..21).map(fib).collect::<Vec<u64>>(); println!("fib([0,...,20]) = {:?}", fibs); let facs = (0..21).map(fac).collect::<Vec<u64>>(); println!("fac([0,...,20]) = {:?}", facs); }