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 -
(->)/2i 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.