אם נשתמש במתארים שלמדנו למציאת מבנה ביטויים, נוכל לגלות מהו היצוג הפנימי של רשימות בפרולוג. ענו על השאלות הבאות לאור השאילתות והתשובות עליהן:
?- [a] =.. List.
List = ['.', a, []]
Yes
?- [a, b] =.. List.
List = ['.', a, [b]]
Yes
1. איזה סוג ביטוי היא רשימה בפרולוג?
2. מהי תשובתו של פרולוג לשאילתא הבאה:
?- functor([a, b, c], F, A).
למדנו בפרק על האופרטורים =, ==, ו- =:=.
בשאילתות הבאות מופיעים האופרטורים ההפוכים שלהם \=, \== ו- =\=, בהתאמה. כלומר: \= מצליח כאשר = נכשל, \== מצליח כאשר == נכשל, =\= מצליח כאשר =:= נכשל.
3. אם כך, על אילו מן השאילתות הבאות עונה פרולוג No?
- V \= m.
- V \== m.
- V \== M.
- V = M, V \== M.
- 9 \= 2*3.
- 9 \== 3*3.
- 9 =\= 2*3.
- 9 =\= 3*3.
ניזכר בתכנית לזיהוי פעלים יוצאים שראינו:
yoce(Poal) :-
nonvar(Poal),
functor(Poal, _, Arity),
Arity > 0.
4. איך ניתן לשכלל אותה כך שנוכל לדעת כמה מושאים יש לפועל יוצא נתון?
התשובה שנרצה:
?- yoce(natan(sefer, le-dina), X).
X = 2
Yes
5. איזו מן התשובות אינה נכונה?
6. מהי התשובה הנכונה?
|