2009-09-14 28 views

Trả lời

3

Tha thứ cho tôi nếu tôi nhận được sai cú pháp, đã lâu kể từ khi tôi chơi với Prolog.


Một giải pháp điển hình là giới thiệu một tầm cao mới để các điều khoản, như thế này:

married(X, Y) :- wife(X, Y). 
married(X, Y) :- wife(Y, X). 

và sau đó xác định các mối quan hệ sử dụng mệnh đề vợ thay vì:

wife(jane, bob). 
wife(alice, john). 

?- married(jane, X). 
X = bob 

Thông tin thêm có thể được tìm thấy ở đây: CSc 8710, Deductive Databases and Logic Programming, chapter 6 - Logic and databases, dưới 6,5 - Quan hệ đặc biệt.

1

Như tôi đã hiểu, vấn đề cơ bản là nếu định nghĩa vòng tròn được cho phép, mặc dù ngôn ngữ kết quả là tự nhất quán, có thể có những hậu quả tinh vi thường phản trực giác. Ngoài ra còn có những cân nhắc về hiệu quả (định nghĩa hình tròn phải trả thêm chi phí).

Xem điều này detailed discussion để biết thêm nhiều giải thích và một số điểm khác nhau.

Các vấn đề liên quan