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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow