(Theo đề xuất của @repeat ) Hãy xem xét một truy vấn của chương trình thuần túy 1 ?- G_0. Sử dụng nếu có bất kỳ truy vấn ?- G_0, G_0.nào?
Chú thích 
1 Không có tabling (để an toàn), các ràng buộc là OK. 
Bài trước về chủ đề.
?- G_0(State), G_0(State).Ngoài ra không có trạng thái nào được chuyển qua ngăn xếp từ kết quả của mục tiêu đầu tiên sang mục tiêu thứ hai?
                G_0có thể là bất kỳ mục tiêu (thuần túy) nào, bao gồm, giả sửG_0 = append(Xs,Ys,Zs)
                G_0;G_0một người có thể kiểm tra các tác dụng phụ hoặc các vấn đề về hiệu năng / bộ nhớ đệm / tab)
                G_0(State),G_0(State)viết thaycall(G_1,State), call(G_1,State)