В основном, когда я пытаюсь преобразовать список в полином или наоборот, он всегда отображается с круглыми скобками (в случае полиномов). Вот код, не работающая функция - это список poly2, другой - просто для определения, что такое моном / полином.
pvars([x,y,z]).
pvar(X):-pvars(V),member(X,V).
polinomial(X) :- monomial(X).
polinomial(P+M) :- monomial(M), polinomial(P).
monomial(X) :- pvar(X).
monomial(N) :- number(N).
monomial(X) :- power(X),!.
monomial(K*X) :- coefficient(K), power(X),!.
coefficient(N) :- number(N).
power(X) :- pvar(X),!.
power(X^Y) :- pvar(X), integer(Y), Y>1,!.
poly2list(X,[X]) :- monomial(X),!.
poly2list(X+P,[X|Y]) :- monomial(X), poly2list(P,Y).
Например, когда я спрашиваю:
poly2list(X,[2*x^2,3,y]).
Результат:
X = 2*x^2+(3+y)
И я пытаюсь получить:
X = 2*x^2+3+y
Заранее спасибо:)