Szukaj…


Nazewnictwo

Podczas programowania w Prologu musimy wybrać dwa rodzaje nazw:

  • nazwy predykatów
  • nazwy zmiennych .

Dobra nazwa predykatu wyjaśnia, co oznacza każdy argument. Zgodnie z konwencją w nazwach używane są podkreślenia w celu oddzielenia opisu różnych argumentów. Wynika to z faktu, że underscores_keep_even_longer_names_readable , podczas mixingTheCasesDoesNotDoThisToTheSameExtent .

Przykłady dobrych nazw predykatów:

  • parent_child/2
  • person_likes/2
  • route_to/2

Pamiętaj, że używane są opisowe nazwy. Imperatywy są unikane. Wskazane jest używanie nazw opisowych, ponieważ predykaty Prologu można zwykle stosować w wielu kierunkach, a nazwa powinna mieć zastosowanie również do wszystkich lub żadnego z argumentów, które nie są tworzone.

Mieszane wielkie litery występują częściej przy wybieraniu nazw zmiennych . Na przykład: BestSolutions , MinElement , GreatestDivisor . Powszechną konwencją nazywania zmiennych oznaczających kolejne stany jest stosowanie S0 , S1 , S2 , ..., S , gdzie S reprezentuje stan końcowy.

Wcięcie

W Prologu jest tylko kilka konstrukcji językowych, a kilka sposobów ich wcięcia jest powszechnych.

Bez względu na wybrany styl, jedną z zasad, którą należy zawsze stosować, jest to, aby nigdy nie umieszczać (;)/2 na końcu linii. To dlatego ; że ; i , wyglądają bardzo podobnie, i , często pojawia się na końcu linii. Dlatego klauzule korzystające z rozróżnienia należy na przykład zapisać jako:

(  Goal1
;  Goal2 
)

Kolejność argumentów

Idealnie, predykaty Prolog można stosować we wszystkich kierunkach. W przypadku wielu czystych predykatów tak też jest. Jednak niektóre predykaty działają tylko w określonych trybach , co oznacza wzorce tworzenia instancji ich argumentów.

Zgodnie z konwencją najczęstszym porządkiem argumentów dla takich predykatów jest:

  • argumenty wejściowe są umieszczane na pierwszym miejscu. Argumenty te muszą zostać utworzone przed wywołaniem predykatu.
  • pary argumentów, które należą do siebie, są umieszczone obok siebie, na przykład p(..., State0, State, ...)
  • planowane argumenty wyjściowe są umieszczane na końcu. Te predykaty są tworzone przez predykat.


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