Prolog Language
Wskazówki dotyczące kodowania
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.