मैं prolog निम्नलिखित स्निपेट है:यह आदेश prolog में एक स्टैक ओवरफ़्लो क्यों बनाता है?
num(0).
num(X) :- num(X1), X is X1 + 1.
fact(0,1) :-!.
fact(X,Y) :- X1 is X-1, fact(X1,Y1), !, Y is Y1 * X.
fact(X) :- num(Y), fact(Y,X).
किसी कृपया समझा क्यों निम्न आदेश एक ढेर अतिप्रवाह कारण हैं? अग्रिम में धन्यवाद।
fact(6).
भी समाप्त हो जाता है का उपयोग करने पर विचार करें शायद आप रूकी के लिए बाहर ले जाना चाहिए '** तथ्य के लिए 2 खंड के शरीर के लिए एक्स> 0' जोड़कर है कि समस्या आप का विश्लेषण किया रोका जा सकता है/2 **। – hardmath