Willem van Dam

alternative(Book)

Het boek, Learn Prolog Now!, is een zeer interessant boek met veel informatie. Ik geloof dat niet alle informatie voor mij is weggelegd. De stof vind ik soms wat taai namelijk. Het is duidelijk beschreven, maar het mag van mij wel wat simpeler. Kijk bijvoorbeeld naar hoofdstuk 2, Unification and Proof Search. Dit is een belangrijk hoofdstuk in het boek, omdat het je leert hoe Prolog werkt. Bij het kopje ‘The occurs check’ gaan ze in op het unification algoritme van Prolog. Ze gebruiken bij ‘The occurs check’ de volgende query:

?-  father(X)  =  X. 

Het boek gebruikt meer dan 10 alinea’s en meer dan 1200 woorden om uit te leggen dat een gemiddeld algoritme zegt dat dit niet wordt samengevoegd, omdat X niet gelijk is aan father(X). Prolog doet dit anders. Door de onderstaande regel zegt Prolog dat deze twee wel samengevoegd worden, want de linkerhand is een term en de rechterhand is een variable. Wat Prolog doet is father(X) toewijzen aan X, maar in father(X) zit een X. Nu heeft Prolog zojuist father(X) aan de X toegewezen, waardoor Prolog weet dat het eigenlijk father(father(X)) is, maar deze heeft weer een X. Prolog gaat hier steeds mee door. Hoe Prolog hier mee doorgaat of wat het precies terug geeft ligt aan de versie en de implementatie van Prolog.

If term1 is a variable and term2 is any type of term, then term1 and term2 unify, and term1 is instantiated to term2 . Similarly, if term2 is a variable and term1 is any type of term, then term1 and term2 unify, and term2 is instantiated to term1 . (So if they are both variables, they’re both instantiated to each other, and we say that they share values.)

Ik geloof dat het boek dit ook korter had kunnen doen. Hiervoor zal ik enkel de eerste vier hoofdstukken van het boek lezen. Deze geven mij, verwacht ik, de nodige basis informatie. Om Prolog in zijn werking te zien heb ik een video bekeken van Derek Banas, zie https://www.youtube.com/watch?v=qgjjlZdGet8 voor de video. De video geeft niet veel uitleg over Prolog, maar laat voor een groot gedeelte zien wat er in Prolog zit. Waar ik achter kwam is dat ik Lists nog verder moet onderzoeken.

Ik zou adviseren om het boek tot hoofdstuk 4 te lezen en dan te gaan oefenen met Prolog. Het boek geeft veel informatie, waarbij soms maar een klein gedeelte nodig is. Dit advies is ook de manier waarop ik het nu ga doen. We zullen zien of dit een handige manier was om Prolog te leren. Hier kom ik nog op terug!