У меня есть этот код
clause2( monopati1(X,X,Monopati,Monopati), true).
clause2( monopati1(X,Z,Monopati,Teliko_monopati),
( akme(X,Y),
\+(member(Y,Monopati)),
append(Monopati,[Y],Neo_monopati),
monopati1(Y,Z,Neo_monopati,Teliko_monopati))).
clause2(monopati(X, Y, Monopati),
( monopati1(X, Y, [X], Monopati),
write(Monopati))).
, и мне нужно заменить предложение на: «monopati1 (X, X, Monopati, Monopati)». С эквивалентным предложением "monopati1 (X, X, Monopati, Teliko_monopati): - Monopati = Teliko_monopati." Но я должен прочитать их с клавиатуры.
Итак, я сделал
write('Give clause to replace'),nl,
read(Old_clause),nl,
write('Give new clause'),nl,
read(New_clause),nl,
retract(clause2(Old_clause , _)),
assert(clause2(New_clause))
, но результат:
clause2((monopati1(A,A,B,C),B=C)).
Как мне избавиться от лишних скобок? в пункте 2 ((monopati1 (A, A, B, C), B = C)), чтобы он стал пунктом 2 (monopati1 (A, A, B, C), B = C).