Tôi có đoạn mã sau đây 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).
ai đó có thể vui lòng g
Tôi đã viết một biến vị ngữ fib/2 để tính toán các số Fibonacci trong Prolog. Mặc dù nó hoạt động, nó luôn luôn nói "ra khỏi ngăn xếp địa phương" và lỗi trông giống như: ?- fib(10, F).
F = 55 ;
ERRO
Tôi cần tạo một vị từ Prolog cho lũy thừa của 2, với các số tự nhiên. số tự nhiên là: 0, s (0), s (s (0)) ans vv .. Ví dụ: ?- pow2(s(0),P).
P = s(s(0));
false.
?- pow2(P,s(s(0))).
P = s(0);
false