(Por sugestão de @repeat ) Considere uma consulta de um programa puro 1 ?- G_0.
Que utilidade teria a consulta ?- G_0, G_0.
?
Notas
de rodapé 1 Sem tabelas (por segurança), as restrições são aceitáveis.
Post anterior sobre o assunto.
?- G_0(State), G_0(State).
também nenhum estado está sendo passado na pilha do resultado do primeiro objetivo para o segundo objetivo?
G_0
pode ser qualquer objetivo (puro), incluindo, digamosG_0 = append(Xs,Ys,Zs)
G_0;G_0
Pode-se testar efeitos colaterais ou problemas de desempenho / armazenamento em cache / marcação)
G_0(State),G_0(State)
um pouco escrevecall(G_1,State), call(G_1,State)