Это очень простой пример, но как мне сделать что-то похожее на:
let fact = |x: u32| {
match x {
0 => 1,
_ => x * fact(x - 1),
}
};
Я знаю, что этот конкретный пример можно легко сделать с помощью итерации, но мне интересно, можно ли сделать рекурсивную функцию в Rust для более сложных вещей (например, пересечение деревьев) или если я должен использовать мой собственный стек.