2011-09-17 105 views
0

比如我有:如何獲得謂詞值

pos(10, 20). 

我怎麼能寫返回第一個POS項(10)中的謂詞。工作的

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

實施例:

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

回答

2

有一個謂詞pos(10, 20).術語pos(10, 20)之間的差。

對於謂詞,這將是代碼:

pos(10, 20). 

,這將是該代碼的執行:

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

對於長期,這將是代碼:

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

這將是代碼的執行:

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