Как обновить значение в предикате в прологе
Я борюсь с обновлением значения предиката, проверяя, является ли результат предиката пустым.
next(X,Y) :- Y='to' -> checker(X).
checker(X) :-
list(X) = true
-> retract(list(X)),
assert(list(X))
; assert(list(X)).
За next(X,Y)
, это перейдет в checker(X)
, Если list(X)
пусто, оно будет утверждать значение для него. Если list(X
) не пустой, он удалит предыдущий результат и добавит обновленный результат.
Это то, чего я хочу добиться в результате.
?- next(you,to).
|: true.
?- list(X).
|: X = you.
?- next(we,to).
|: true.
?- list(X).
|: X = we.