नहीं , लेकिन उन कारणों के लिए नहीं जो अन्य लोगों ने दिए हैं। रिकर्सन और इंडक्शन के बीच अंतर यह नहीं है कि रिकर्सन "टॉप-डाउन" है और इंडक्शन "नीचे-ऊपर" है। इंडक्शन आइसोमोर्फिक है जिसे "प्राइमिटव रिकर्सन" कहा जाता है, लेकिन, सामान्य तौर पर, रिकर्सन प्रेरण की तुलना में कड़ाई से अधिक शक्तिशाली है ।
टॉप-डाउन और बॉटम अप के बीच का अंतर तुच्छ है - किसी भी "टॉप-डाउन" आदिम पुनरावर्ती कार्यक्रम को यंत्रवत् रूप से "नीचे-ऊपर" में परिवर्तित किया जा सकता है। वास्तव में, प्रेरण द्वारा किसी भी प्रमाण को एक पुनरावर्ती कार्यक्रम में बदल दिया जा सकता है। आगमनात्मक निर्माणों की गणना के ढांचे में, यदि आप यह साबित करना चाहते हैं कि हर प्राकृतिक संख्या में फ्रोपुलस है, तो आप इसे एक फ़ंक्शन के रूप में लिखेंगे जो एक प्रमाण का निर्माण करता है कि एक सबूत बनाने के लिए एक पुनरावर्ती कॉल करके एन फ्रोपुलस होता है कि एन- 1 फ्रोपुलस है।
प्रेरण का मुख्य कारक यह है कि चीजों को छोटी चीजों के रूप में परिभाषित किया जाता है, और वे कई चरणों के बाद "नीचे" करते हैं। प्राकृतिक संख्याएं आगमनात्मक हैं क्योंकि प्रत्येक प्राकृतिक या तो 0 है, या एक छोटे प्राकृतिक का उत्तराधिकारी है। सूचियाँ आगमनात्मक हैं क्योंकि प्रत्येक सूची या तो खाली है, या एक तत्व और एक छोटी सूची में टूट सकती है ("प्रकट")।
कभी-कभी पुनरावर्ती कार्यक्रम छोटी चीज़ों के संदर्भ में नहीं लिखे जाते हैं। उदाहरण के लिए, इस Collatz funtion को लें:
fun collatz(n)
if n <= 1
return 0;
else if n % 2 == 0
return 1 + collatz(n / 2)
else
return 1 + collatz(3 * n + 1)
end
यह फ़ंक्शन न तो टॉप-डाउन और न ही नीचे-ऊपर जाता है, और इस प्रकार प्राकृतिक संख्या पर आगमनात्मक नहीं है।
हो सकता है कि उस क्रम से व्यवहार करने का आदेश दिया जाए, लेकिन ज्यादातर चीजों के लिए बस कोई रास्ता नहीं है। अनंत धाराओं पर कार्य एक महान उदाहरण हैं। वास्तव में, धाराएं "कोइंडिक्टिव" प्रकार का प्रोटोटाइप उदाहरण हैं।
बॉब हार्पर की "प्रोग्रामिंग लैंग्वेजेज के लिए प्रैक्टिकल फ़ाउंडेशन," ऑनलाइन मुफ़्त उपलब्ध है, जिसमें आगमनात्मक, सहवर्ती और पुनरावर्ती प्रकारों का अच्छा परिचय है।