2013-03-06 29 views
0

我在執行Prolog謂詞vector_reference(L,N,V)時遇到了問題,因此當給出列表「L」和索引「N」時,它將V與第N個值名單。用列表的第N個值統一一個術語

的例子打印輸出低於:

?- vector_reference([2,3,4], 3, V). 
V = 4 

?- vector_reference([2, [2,3],’hello’]),2,V). 
V = [2,3] 

任何幫助,將不勝感激。

回答

1

在標準庫中,library(lists)(自動加載,你不需要做任何事情)有兩個謂詞:nth0/3nth1/3,它們完全符合你的需要。例如:

?- nth1(2, [2,[2,3],hello], V). 
V = [2, 3]. 

順便說一句,SWI-Prolog網頁有一個非常有用的搜索功能。在那裏輸入nth會給你答案。

+0

看到我的老師從未提到過這個東西只是把我們扔進了獅子窩。這工作令人驚訝,因爲我剛做vector_reference(L,N,V): - nth1(N,L,V)。寫了這麼多的行後,什麼也得不到... – Robbie 2013-03-07 18:46:30

相關問題