Paradygmaty programowania/Test 13: Programowanie w logice w Prologu I
Test 13
Załóżmy, że w programie prologowym znajduje się jedna tylko klauzula: a(b, X). Co odpowie interpreter po wpisaniu celu a(b, c)?
"nie" (i nic więcej)
"tak" (i nic więcej)
X = c, a następnie "nie"
X = c, a następnie "tak"
Załóżmy, że w programie prologowym znajduje się jedna tylko klauzula: a(b, X). Co odpowie interpreter po wpisaniu celu a(X, c)?
"nie" (i nic więcej)
"tak" (i nic więcej)
X = b, a następnie "nie"
X = b, a następnie "tak"
Załóżmy, że w programie prologowym znajduje się jedna tylko klauzula: a(b, X). Co odpowie interpreter po wpisaniu celu a(X, Y)?
"nie" (i nic więcej)
"tak" (i nic więcej)
X = b, a następnie "nie"
X = b, a następnie "tak"
Załóżmy, że w programie prologowym znajduje się jedna tylko klauzula: a(X, X). Co można sprawdzić za jej pomocą?
czy podane argumenty dają się uzgodnić
czy podane argumenty są listami tej samej długości
czy podane argumenty są tego samego typu
klauzula ta jest niepoprawna
Która klauzula nie wystarcza do tego, by odpowiedzieć twierdząco na pytanie a(b, c)?
a(b, X).
a(X, c).
a(X, X).
a(_, _).
Załóżmy, że w programie prologowym znajduje się jedna tylko klauzula: a(X, X). Co będzie wynikiem wpisania celu a(X, Y)?
odpowiedź "nie" (i nic więcej)
odpowiedź "tak" (i nic więcej)
utożsamienie zmiennych X i Y, co interpreter wypisze jako X = Y
wypisanie komunikatu o błędzie
Załóżmy, że program zawiera jedną tylko klauzulę: a(b(c), d, e(f, g)). Który cel jest niepoprawny?
a(X).
a(X, Y, Z).
a(X, Y, e(Z1, Z2)).
a(_, _, X).
Załóżmy, że program zawiera jedną tylko klauzulę: a(b, c, d). Dlaczego cel a(X) jest niepoprawny?
funktor a jest określony dla stałych, a nie dla zmiennych
funktor a wymaga trzech parametrów
nie da się sprawdzić typu celu
ten cel jest poprawny
Jaka będzie konkretyzacja zmiennej X po uzgodnieniu listy [1 | X] z listą [Y, 2, 3, Z]?
[2, 3]
[2, 3, Z]
[2, 3 | Z]
to uzgodnienie nie powiedzie się
W której klauzuli użycie zmiennej anonimowej (znak podkreślenia) zamiast X zmieniłoby sens klauzuli?
a(X, X).
a(b, X).
a(b, X) :- c(b).
a(X, Y) :- c(Y).