מבנה if-else משמש אותנו לנסח את שרשרת התנאים: אם A אז B, אחרת C.
המשמעות: יש לנסות להוכיח את A. אם A מתקיים, אז יש לנסות להוכיח את B. אם A לא מתקיים, יש לנסות להוכיח את C.
על ידי שימוש ב-cut נוכל ליצור בעצמנו מבני if-else בפרולוג:
% if_else
if_else :- a, !, b.
if_else :- c.
פרולוג מנסה להוכיח a. אם הוא מצליח, הוא יינסה להוכיח את b תוך התעלמות מ-c. אם אינו מצליח להוכיח את a, אזי הוא מתעלם מ-b ומנסה להוכיח את c.
מכיוון שהשימוש במבנים אלה שכיח, פרולוג מציע מבנה if-else מובנה. על מנת להביע טענות if-else בפרולוג ניתן לכתוב:
(a -> b; c).
בעזרת מבנה תנאי נוכל להגדיר מחדש את המתאר gender שראינו בתחילת הפרק:
% gender using if-else construction
gen(X,G) :- ( girl(X) -> G=female ; G=male ).
|