Я пытаюсь перевести вывод трассировки из пролога в дерево поиска, но я не уверен, правильно ли это.Приветствуется любая помощь в том, как сделать дерево поиска из информации трассировки.
Database/Input:
rara([X|L],A,M):-
rara(L,[Y|A],M).
rara([M|L],L,[M]).
rara(L,M):-
rara(L,[],M).
Query:
rara([a,b,c,d],X).
Trace output:
Call: (8) rara([a, b, c, d], _G922) ? creep
Call: (9) rara([a, b, c, d], [], _G922) ? creep
Call: (10) rara([b, c, d], [_G1043], _G922) ? creep
Call: (11) rara([c, d], [_G1046, _G1043], _G922) ? creep
Call: (12) rara([d], [_G1049, _G1046, _G1043], _G922) ? creep
Call: (13) rara([], [_G1052, _G1049, _G1046, _G1043], _G922) ? creep
Fail: (13) rara([], [_G1052, _G1049, _G1046, _G1043], _G922) ? creep
Redo: (12) rara([d], [_G1049, _G1046, _G1043], _G922) ? creep
Fail: (12) rara([d], [_G1049, _G1046, _G1043], _G922) ? creep
Redo: (11) rara([c, d], [_G1046, _G1043], _G922) ? creep
Fail: (11) rara([c, d], [_G1046, _G1043], _G922) ? creep
Redo: (10) rara([b, c, d], [_G1043], _G922) ? creep
Fail: (10) rara([b, c, d], [_G1043], _G922) ? creep
Redo: (9) rara([a, b, c, d], [], _G922) ? creep
Fail: (9) rara([a, b, c, d], [], _G922) ? creep
Fail: (8) rara([a, b, c, d], _G922) ? creep
Текущее дерево поиска:
rara([a,b,c,d],X).
| |
rara([a, b, c, d], _G922) rara([b, c, d], [_G1043], _G922)
X = _G922 |
rara([c, d], [_G1046, _G1043], _G922)
|
rara([d], [_G1049, _G1046, _G1043], _G922)
|
rara([], [_G1052, _G1049, _G1046, _G1043], _G922)