क्या Rust में रिकर्सिव क्लोज़र बनाना संभव है?
सभी को नमस्ते! मैं Rust सीख रहा हूँ और फैक्टोरियल की गणना करने के लिए एक रिकर्सिव क्लोज़र लिखने की कोशिश कर रहा हूँ। यहाँ मेरा कोड है:\n\n```rust\nlet factorial = |n: u32| -> u32 {\n if n <= 1 {\n 1\n } else {\n n * factorial(n - 1) // error: cannot capture `factorial` in its own initializer\n }\n};\n```\n\nकंपाइलर एक एरर देता है: "cannot capture `factorial` in its own initializer"। मैं समझता हूँ कि क्लोज़र उस वेरिएबल को कैप्चर नहीं कर सकता जो अभी तक पूरी तरह से इनिशियलाइज़ नहीं हुआ है। लेकिन फिर रिकर्सिव क्लोज़र कैसे बनाया जाए?\n\nमैंने `factorial` को `let factorial: Box u32>` के रूप में घोषित करने की कोशिश की, लेकिन इससे मदद नहीं मिली। मुझे पता है कि सामान्य फंक्शन `fn factorial(n: u32) -> u32` का उपयोग किया जा सकता है, लेकिन मुझे विशेष रूप से क्लोज़र चाहिए क्योंकि मैं बाहरी वेरिएबल्स को कैप्चर करना चाहता हूँ।\n\nकृपया बताएं, कैसे करूँ?