У меня есть следующая задача:
Напишите метод, который будет добавлять два полинома. То есть 0+2*x^3 и 0+1*x^3+2*x^4 дадут 0+3*x^3+2*x^4.
Я также написал следующий код:
add_poly(+A1*x^B1+P1,+A2*x^B2+P2,+A3*x^B3+P3):-
(
B1=B2,
B3 = B2,
A3 is A1+A2,
add_poly(P1,P2,P3)
;
B1<B2,
B3=B1,
A3=A1,
add_poly(P1,+A2*x^B2+P2,P3)
;
B1>B2,
B3=B2,
A3=A2,
add_poly(+A1*x^B1+P1,P2,P3)
).
add_poly(X+P1,Y+P2,Z+P3):-
Z is X+Y,
add_poly(P1,P2,P3).
Моя проблема в том, что я не знаю, как остановиться. Я хотел бы остановиться, когда один из аргументов равен нулю, а затем добавить второй аргумент к третьему. Но как я могу проверить, что они равны нулю? Спасибо.