Пролог удаляет скобки при преобразовании списка в полином - PullRequest
0 голосов
/ 12 ноября 2018

В основном, когда я пытаюсь преобразовать список в полином или наоборот, он всегда отображается с круглыми скобками (в случае полиномов). Вот код, не работающая функция - это список 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

Заранее спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...