Crates.io | fix_fn |
lib.rs | fix_fn |
version | 1.0.2 |
source | src |
created_at | 2020-05-31 13:09:41.936191 |
updated_at | 2020-05-31 20:12:09.000125 |
description | Macro to create recursive closures (similar to the Y combinator). |
homepage | https://crates.io/crates/fix_fn |
repository | https://github.com/SrTobi/fix_fn |
max_upload_size | |
id | 248154 |
size | 7,548 |
This library enables the creation of recursive closures by providing a
single macro fix_fn
. The functionality is similar to the
Y combinator.
Recursive closures can have arbitrary amounts of parameters and can capture
variables.
use fix_fn::fix_fn;
let fib = fix_fn!(|fib, i: u32| -> u32 {
if i <= 1 {
i
} else {
// fib will call the closure recursively
fib(i - 1) + fib(i - 2)
}
});
assert_eq!(fib(7), 13);