Mam następujący fragment kodu prolog:Dlaczego to polecenie powoduje przepełnienie stosu w prologu?
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).
Może ktoś proszę wyjaśnić dlaczego następujące polecenie powoduje przepełnienie stosu? Z góry dziękuję.
fact(6).
Być może należy zwrócić uwagę, że problem debiutant ty analizie można zapobiegać poprzez dodanie 'x> 0' do korpusu 2. klauzuli za ** rzeczywistości/2 **. – hardmath