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.