Có cách nào dễ dàng để thực hiện truy vấn trong prolog chỉ trả lại mỗi kết quả một lần?kết quả duy nhất từ prolog
ví dụ tôi đang cố gắng một cái gì đó như:
deadly(Xn) :- scary(X), Xn is X - 1, Xp is X + 1, not(safe(Xn)), safe(Xp).
deadly(Xp) :- scary(X), Xn is X - 1, Xp is X + 1, not(safe(Xp)), safe(Xn).
deadly(X).
và nhận
X = 5
X = 5
X = 5
X = 5
....
Không hữu ích cho tôi.
mỗi khi tôi đã sử dụng! nó đã hoàn toàn ngừng đánh giá và tôi muốn mọi giá trị mà prolog là tìm kiếm, nhưng chỉ một lần cho mỗi giá trị. (Tôi sẽ cố gắng và cắt giảm trường hợp của tôi) – BCS
Đó là vấn đề khi nào và ở đâu để sử dụng nó. Nói "không bao giờ quay trở lại đây một lần nữa" có một ý nghĩa cực kỳ khác nhau đến trước hoặc sau khi bắt giữ dữ liệu đầu tiên. – MarkusQ