ik ben begonnen om te programmeren in prolog, en ik lees nu het boek "learn prolog now!".
daar komen op het eind van elk hoofdstuk praktische opdrachten, maar ik ben bij hoofdstuk 3 al vastgelopen.
dit is het probleem:
de volgende knowledge base is gegeven:
de eerste opdracht was een predikaat te schrijven dat je vertelt of je van de ene plek naar de ander kunt komen. dat was niet moeilijk:
maar bij de volgende vraag loop ik vast:
schrijf een predikaat travel/3 dat vertelt welke route er genomen moet worden om van de ene plek naar de ander te komen. het programma moet als volgt reageren:
op de query travel(valmont, losAngeles, X).
ik kom hier niet uit. het lukt me niet om het rare predikaat go/2 en go/3 te verwerken in travel/3.
iemand enig idee? iemand uberhaupt die prolog programmeert?
daar komen op het eind van elk hoofdstuk praktische opdrachten, maar ik ben bij hoofdstuk 3 al vastgelopen.
dit is het probleem:
de volgende knowledge base is gegeven:
Prolog:
1
2
3
4
5
6
7
| byCar(auckland,hamilton). byCar(hamilton,raglan). ....... byTrain(metz,frankfurt). ....... byPlane(frankfurt,bangkok). .... |
de eerste opdracht was een predikaat te schrijven dat je vertelt of je van de ene plek naar de ander kunt komen. dat was niet moeilijk:
Prolog:
1
2
3
4
5
6
7
| travel(X,Y):-byCar(X,Y). travel(X,Y):-byTrain(X,Y). travel(X,Y):-byPlane(X,Y). travel(X,Y):-byCar(X,Z),travel(Z,Y). travel(X,Y):-byTrain(X,Z),travel(Z,Y). travel(X,Y):-byPlane(X,Z),travel(Z,Y). |
maar bij de volgende vraag loop ik vast:
schrijf een predikaat travel/3 dat vertelt welke route er genomen moet worden om van de ene plek naar de ander te komen. het programma moet als volgt reageren:
Prolog:
1
2
3
| X = go(valmont,metz, go(metz,paris, go(paris,losAngeles))) |
op de query travel(valmont, losAngeles, X).
ik kom hier niet uit. het lukt me niet om het rare predikaat go/2 en go/3 te verwerken in travel/3.
iemand enig idee? iemand uberhaupt die prolog programmeert?