פרק 8: cut ושלילה

8.3 מבנה if-else

מבנה 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 ).

מבוא

נושאים בסיסיים

נושאים מתקדמים

סיכום

© כל הזכויות שמורות למערכת המידע איתן