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. עבור אילו שאילתות תעצור התכנית ותתן תשובה "כן" או "לא"?
3. מה מקור הבעיה בתכנית?
בשאלות הבאות נתייחס לתכנית הדנה בסוגיה "מיהו הוביט?":
loves_food(sam).
hobbit(bilbo).
hobbit(H) :- loves_food(H) ; hairy_feet(H).
hairy_feet(X) :- hobbit(X).
4. בעקבות איזו שאילתא ייכנס פרולוג ללולאה אינסופית?
5. מה יהיה הפלט בעקבות השאילתא hobbit(X)?
|