স্বজ্ঞাত উত্তরটি হ'ল যদি আপনার আনবাউন্ডেড লুপগুলি না থাকে এবং আপনার পুনরাবৃত্তি না হয় এবং আপনার কাছে না থাকে তবে আপনার প্রোগ্রামগুলি সমাপ্ত হবে। এটি একেবারেই সত্য নয়, অ-অবসানকে ছিটিয়ে থাকার অন্যান্য উপায় রয়েছে তবে বেশিরভাগ ব্যবহারিক ক্ষেত্রে এটি যথেষ্ট ভাল। অবশ্যই কথোপকথনটি ভুল, এই কনস্ট্রাক্টগুলির সাথে এমন ভাষা রয়েছে যা অবসানহীন প্রোগ্রামগুলিকে মঞ্জুরি দেয় না, তবে তারা অন্যান্য ধরণের বিধিনিষেধ ব্যবহার করে যেমন পরিশীলিত টাইপ সিস্টেমগুলি।
recursion
স্ক্রিপ্টিং ভাষাগুলিতে একটি সাধারণ নিষেধাজ্ঞাকে গতিশীলভাবে পুনরাবৃত্তি প্রতিরোধ করা হয়: যদি কোনও কল বি সি কল করে ... যদি এ কল করে, তখন ইন্টারপ্রিটার (বা যাচাইকারী, আপনার ক্ষেত্রে) ত্রুটি ছেড়ে দেয় বা সংকেত দেয়, এমনকি যদি পুনরাবৃত্তিটি শেষ হতে পারে। দুটি দৃ concrete় উদাহরণ:
সি প্রিপ্রোসেসর যখন ম্যাক্রোটি প্রসারিত করছে তখন একটি ম্যাক্রো অক্ষত রেখে দেয়। সর্বাধিক সাধারণ ব্যবহার হল একটি ফাংশনটির চারপাশে একটি মোড়ক সংজ্ঞায়িত করা:
#define f(x) (printf("calling f(%d)\n", (x)), f(x))
f(3);
এটি প্রসারিত হয়
(printf("calling f(%d)\n", (3)), f(3))
পারস্পরিক পুনরাবৃত্তি পাশাপাশি পরিচালনা করা হয়। এর পরিণতি হ'ল সি প্রিপ্রোসেসর সর্বদা শেষ হয়, যদিও উচ্চ রান-টাইম জটিলতায় ম্যাক্রোগুলি তৈরি করা সম্ভব।
#define f0(x) x(x)x(x)
#define f1(x) f0(f0(x))
#define f2(x) f1(f1(x))
#define f3(x) f2(f2(x))
f3(x)
ইউনিক্স শেলগুলি পুনরাবৃত্তভাবে এলিয়াসগুলি প্রসারিত করে তবে কেবল ততক্ষণ তাদের মুখোমুখি না হওয়া অবধি ইতিমধ্যে প্রসারিত হচ্ছে alias আবার, প্রাথমিক উদ্দেশ্য হ'ল একটি অনুরূপ-নামক কমান্ডের জন্য একটি উপাধি সংজ্ঞা দেওয়া।
alias ls='ls --color'
alias ll='ls -l'
এনএন
পুনরাবৃত্ত কলগুলি সমাপ্ত হওয়ার প্রমাণ করার জন্য আরও সাধারণ কৌশল রয়েছে যেমন কিছু ইতিবাচক পূর্ণসংখ্যার সন্ধান করা যা সর্বদা একটি পুনরাবৃত্ত কল থেকে পরের দিকে কমে যায় তবে এগুলি সনাক্ত করা যথেষ্ট শক্ত। তারা প্রায়শই যাচাই করা শক্ত হয়, অনুমান করা যাক।
loops
for
মিএন
বিশেষত, লুপগুলির জন্য (আরও বেশি যুক্তিসঙ্গত ভাষার গঠন যেমন শর্তসাপেক্ষ হিসাবে), আপনি সমস্ত আদিম পুনরাবৃত্ত ফাংশন লিখতে পারেন এবং তদ্বিপরীত। আপনি আধ্যাত্মিকভাবে পুনরাবৃত্ত ক্রিয়াকলাপগুলি সিনট্যাকটিকালি চিনতে পারবেন (যদি সেগুলি একটি অবিচ্ছিন্ন উপায়ে লেখা থাকে), কারণ তারা লুপ বা গোটো বা পুনরাবৃত্তি বা অন্যান্য কৌশল হিসাবে ব্যবহৃত হয় না। আদিম পুনরাবৃত্ত ফাংশনগুলি সমাপ্তির গ্যারান্টিযুক্ত এবং বেশিরভাগ ব্যবহারিক কার্যগুলি আদিম পুনরাবৃত্তির বাইরে যায় না।