Czy możliwe jest utworzenie rekurencyjnego zamknięcia w Rust?
Jest to bardzo prosty przykład, ale jak zrobić coś podobnego do:
let fact = |x: u32| {
match x {
0 => 1,
_ => x * fact(x - 1),
}
};
Wiem, że ten konkretny przykład można łatwo zrobić z iteracją, ale zastanawiam się, czy jest możliwe utworzenie funkcji rekurencyjnej w Rust dla bardziej skomplikowanych rzeczy (takich jak przechodzenie przez drzewa) lub czy muszę zamiast tego użyć własnego stosu .