Prolog Language
Nielogiczne predykaty
Szukaj…
Przewiduje skutki uboczne
Predykaty wywołujące skutki uboczne opuszczają królestwo czystej logiki. Są to na przykład:
-
writeq/1
-
read/1
-
format/2
Efekty uboczne to zjawiska, których nie można uzasadnić w ramach programu. Na przykład usunięcie pliku lub wyniku w terminalu systemowym.
Predykaty meta-logiczne
Przewiduje, że powód wystąpienia instancji nazywa się meta-logicznym . Przykładami są:
-
var/1
-
ground/1
-
integer/1
Te predykaty znajdują się poza sferą czysto monotonicznych programów logicznych, ponieważ niszczą właściwości takie jak przemienność koniunkcji.
Inne predykaty, które są meta-logiczne, obejmują:
-
arg/3
-
functor/3
-
(=..)/2
Te predykaty można w zasadzie modelować w ramach logiki pierwszego rzędu, ale wymagają one nieskończonej liczby klauzul.
Predykaty wszystkich rozwiązań
Przewidywanie, że powód wszystkich rozwiązań jest nielogiczny. Są to na przykład:
-
setof/3
-
findall/3
-
bagof/3
! / 0 i powiązane predykaty
Prognozy, które utrudniają lub zabraniają deklaratywnego czytania programów Prolog, są logiczne. Przykładami takich predykatów są:
-
!/0
-
(->)/2
i if-then-else -
(\+)/1
Te predykaty można zrozumieć tylko proceduralnie, biorąc pod uwagę faktyczny przebieg sterowania interpretera i jako takie wykraczają poza sferę czystej logiki.