Пролог - сопоставление с образцом: сложное выражение, связанное оператором - PullRequest
0 голосов
/ 22 февраля 2019

Я новичок в прологе, и я хотел бы знать, есть ли способ заменить часть описания элемента следующим образом:

S = ( tab/field = 2 ), (X/Y=V)=S.
S = ( +field > 2 ), (+Y>V)=S.

В следующих примерах я хотел бы заменить частьВыражение (часть X и Y), но держите оператора, вот так:

( replacedValue = 2)
( replacedValue > 2)

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 22 февраля 2019
?- S = (tab/field = 2), display(S), S =.. [Op, L, R], Result =.. [Op, replaced, R].
=(/(tab,field),2)
S =  (tab/field=2),
Op =  (=),
L = tab/field,
R = 2,
Result =  (replaced=2).

?- S = (+field > 2), display(S), S =.. [Op, L, R], Result =.. [Op, replaced, R].
>(+(field),2)
S =  (+field>2),
Op =  (>),
L = +field,
R = 2,
Result =  (replaced>2).
...