(По предложению @repeat ) Рассмотрим запрос чистой программы 1 ?- G_0.
Какой смысл в этом запросе ?- G_0, G_0.
?
Сноски
1 Таблицы отсутствуют (для безопасности), ограничения в порядке.
Предыдущий пост на эту тему.
?- G_0(State), G_0(State).
Также в стеке не передается состояние от результата первой цели до второй цели?
G_0
может быть любая (чистая) цель, в том числе, скажемG_0 = append(Xs,Ys,Zs)
G_0;G_0
Можно проверить побочные эффекты или проблемы с производительностью / кэшированием / табулированием)
G_0(State),G_0(State)
одного, скорее пишетcall(G_1,State), call(G_1,State)