#递归 #迭代器 #进程宏

reciter

允许将递归函数转换为使用缓存的Iterator的宏。

3个版本

0.1.2 2018年11月10日
0.1.1 2018年11月10日
0.1.0 2018年11月10日

#157 in #递归

MIT许可证

14KB
262

属性宏 #[reciter] 允许将递归函数转换为使用缓存的Iterator。

示例

#[reciter(cache = "auto", start = 1)]
fn factorial(n: usize) -> BigInt {
    if n == 1 {
        BigInt::from(1)
    } else {
        n * factorial(n - 1)
    }
}

fn main() {
    let fi = FactorialIterator::new();
    for (i, fac) in fi.enumerate().take(512) {
        println!("{}! = {}", i + 1, fac);
    }
}    

更多信息请参阅文档或仓库中的测试。

依赖关系

~2MB
~49K SLoC