Hvordan lage en Prolog Append Predicate

Prolog inneholder en innebygd predikat kalles "føyer" som føyer to lister, men å skrive ditt eget vil hjelpe deg å få en forståelse hvordan språket bruker målrettet og forening til å utføre beregninger.

I en prosessuell og viktig programmeringsspråk (for eksempel C ++ eller Java), vil du skrive en algoritme som looper over to lister og føyer dem sammen. I Prolog, gjør du det motsatte; du skriver et sett med regler som definerer hva den endelige listen skal se ut, og tolken gjelder disse reglene for å beregne resultatet.

I likhet med innebygde "append" predikat, vil du definere en "appendLists" predikat som tar tre argumenter: den første listen, den andre listen, og resultatet av føye første og andre lister sammen.

I Prolog, tomme klammeparenteser "[]" (uten anførselstegn) betegner tom liste, og notasjon "[Første | Rest]" (uten anførselstegn) representerer en liste som første element er "først" og som har gjenstående elementer er en liste kalt "resten".

Bruksanvisning

1 Definere en regel for basen tilfelle av rekursjon, som sier at å legge noen liste til de tomme liste resultater i den opprinnelige listen. Skriv inn følgende regel inn i Prolog tolk, uten de omkringliggende sitater, og trykk Enter: ". AppendLists ([], List, List)"

2 Definere en regel for den rekursive saken ved å skrive følgende regel inn tolk, uten de omkringliggende sitater, og trykke på Enter: «appendLists ([Første | REST1], List, [Første | REST2]): - appendLists (REST1, Liste REST2). " Denne regelen sier at (lesing høyre side først), hvis tilføye "REST1" og "List" resultater i "REST2", og det er også sant at føye "Leder" etterfulgt av "REST1" og "List" resultater i "leder" etterfulgt av "REST2".

3 Test din predikat med et eksempel. Skriv inn følgende søkeord i tolk, uten anførselstegn, og trykk Enter: ". AppendLists ([a, b], [c, d], resultater)" Tolken skal returnere vedlagte liste i den ubundne variable "Result" og print "Resultat = [a, b, c, d]".