Prolog Language
Riktlinjer för kodning
Sök…
Namngivning
När vi programmerar i Prolog måste vi välja två sorters namn:
- namn på predikat
- namn på variabler .
Ett bra predikatnamn gör klart vad varje argument betyder. Enligt konvention används understreck i namn för att separera beskrivningen av olika argument. Detta beror på att underscores_keep_even_longer_names_readable
, medan mixingTheCasesDoesNotDoThisToTheSameExtent
.
Exempel på bra predikatnamn är:
-
parent_child/2
-
person_likes/2
-
route_to/2
Observera att beskrivande namn används. Imperativ undviks. Det är tillrådligt att använda beskrivande namn eftersom Prolog-predikat vanligtvis kan användas i flera riktningar, och namnet bör vara tillämpligt också för alla eller inget av argumenten instanseras.
Blandad bokstäver är vanligare när du väljer variablenamn . Till exempel: BestSolutions
, MinElement
, GreatestDivisor
. En vanlig konvention för att namnge variabler som anger successiva tillstånd använder S0
, S1
, S2
, ..., S
, där S
representerar det slutliga tillståndet.
Indrag
Det finns bara ett fåtal språkkonstruktioner i Prolog, och flera sätt att fördriva dem är vanliga.
Oavsett vilken stil som väljs, är en princip som alltid ska följas att aldrig placera (;)/2
i slutet av en rad. Detta beror på ;
och ,
ser mycket lika, och ,
ofta inträffar vid slutet av en rad. Därför bör klausuler som använder en skillnad till exempel skrivas som:
( Goal1 ; Goal2 )
Argumentordning
Helst kan Prolog-predikat användas i alla riktningar. För många rena predikat är detta faktiskt också fallet. Vissa predikat fungerar dock bara i särskilda lägen , vilket innebär inställningsmönster för deras argument.
I regel är den vanligaste argumentordningen för sådana predikat:
- inmatningsargument placeras först. Dessa argument måste instanseras innan predikatet anropas.
- par argument som hör samman placeras intilliggande, till exempel
p(..., State0, State, ...)
- avsedda utgångsargument placeras senast. Dessa predikat inställs av predikatet.