2011-09-17 4 views
0

Par exemple, j'ai:Comment obtenir prédicats valeurs

pos(10, 20). 

Comment puis-je écrire le prédicat qui retourne le premier terme pos (10).

get_pos_x(Pos) :- % should return the first pos param(10). 

Exemple de travail:

get_pos_x(pos(10,20)) :- % should write 10. 

Répondre

2

Il y a une différence entre un prédicatpos(10, 20).et un termepos(10, 20).

Pour le prédicat, ce serait le code:

pos(10, 20). 

Et ce serait l'exécution du code:

:- pos(X, 20), write(X), nl. 

Pour le terme, ce serait la code:

get_pos_x(pos(X, _)) :- 
    write(X), nl. 

Et ce serait l'exécution du code:

:- get_pos_x(pos(10, 20)).