আমি কীভাবে কাককে বোঝাতে পারি যে নীচে প্রদত্ত পুনরাবৃত্তির কাজটি সমাপ্ত হয়েছে? ফাংশন দুটি সূচক যুক্তি লাগে। স্বজ্ঞাতভাবে, পুনরাবৃত্তিটি সমাপ্ত হয় কারণ উভয় যুক্তির পচন হয়।
বিশেষত, ফাংশনটি দুটি গাছ ইনপুট হিসাবে নেয়।
Inductive Tree :=
| Tip: Tree
| Bin: Tree -> Tree -> Tree.
বৃক্ষগুলিতে, আমি নিম্নলিখিত শৈলীর অন্তর্ভুক্ত করতে পছন্দ করি।
Inductive TreePair :=
| TipTip : TreePair
| TipBin : Tree -> Tree -> TreePair
| BinTip : Tree -> Tree -> TreePair
| BinBin : TreePair -> TreePair -> TreePair.
Fixpoint pair (l r: Tree): TreePair :=
match l with
| Tip =>
match r with
| Tip => TipTip
| Bin rl rr => TipBin rl rr
end
| Bin ll lr =>
match r with
| Tip => BinTip ll lr
| Bin rl rr => BinBin (pair l rl) (pair lr r)
end
end.
ট্রিপিয়ার সংজ্ঞাটি গৃহীত হয় তবে ফাংশন জোড়ার সংজ্ঞা ত্রুটি বার্তা দেয়:
Error: Cannot guess decreasing argument of fix.
সুতরাং আমি কীভাবে সমাপ্তির বিষয়ে কাককে বোঝাতে আগ্রহী।
pair
সঠিকভাবে সংজ্ঞায়িত হয়েছে কিনা তা নিশ্চিত করার জন্য ডেটা স্ট্রাকচারের একচেটিয়াভাবে হ্রাসের সীমা নির্দিষ্টকরণ সম্পর্কে । কোক নিছক বাহন।