thể trùng lặp:
Prolog delete: doesn't delete all elements that unify with ElementXóa tất cả các thành viên của một danh sách mà không thống nhất trong Prolog
Trong Prolog nếu bạn viết này:
delete([(1,1),(1,2),(1,1),(3,4)],(1,_),L).
kết quả sẽ là:
L = [ (1, 2), (3, 4)].
Điều bình thường vì biến _ liên kết với 1 trong phần tử đầu tiên và nó tìm kiếm thêm các phần tử (1,1) và xóa chúng.
Có cách nào để ngăn chặn sự hợp nhất này xảy ra và xóa tất cả các thành viên của biểu mẫu (1, _). Trong trường hợp đó, kết quả phải là: L = [(3, 4)].
trình về nguyên tắc, nhưng phá vỡ nếu mục danh sách được không đủ instantiated vào thời điểm đó 'delete_pattern/3' được chạy. – repeat