פרק 4: רקורסיה

בחן את עצמך


1. איזו מן ההגדרות הבאות איננה רקורסיבית?






התייחס לתכנית הבאה להגדרת היחס קטן-שווה בין מספרים טבעיים (נניח שיש ברשותנו המתאר positive לזיהוי מספרים טבעיים חיוביים):

less_than_equal(0, X) :- positive(X).
less_than_equal(X , Y) :- X1 is X-1,
Y1 is Y-1, less_than_equal(X1 , Y1).

ולשאילתות שאפשר להציג לפרולוג על התכנית:

1. less_than_equal(6,7).
2. less_than_equal(7,7).
3. less_than_equal(6,4).
4. less_than_equal(0,7).

2. עבור אילו שאילתות תעצור התכנית ותתן תשובה "כן" או "לא"?




1, 3


3. מה מקור הבעיה בתכנית?






בשאלות הבאות נתייחס לתכנית הדנה בסוגיה "מיהו הוביט?":

loves_food(sam).

hobbit(bilbo).
hobbit(H) :- loves_food(H) ; hairy_feet(H).

hairy_feet(X) :- hobbit(X).

4. בעקבות איזו שאילתא ייכנס פרולוג ללולאה אינסופית?






5. מה יהיה הפלט בעקבות השאילתא hobbit(X)?






מבוא

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

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

סיכום

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