0
我有一個函數用來返回列表的第n個元素。函數顯示列表的第n個元素,返回false。
dispnth([H|T], 0, H).
dispnth([H|T], C, Result) :-
dispnth(T, NewC, H), NewC is C -1.
有了這樣 dispnth輸入([1,2,3,4],2,X)。
我應該得到
X=2.
但我越來越假。
任何想法?
我有一個函數用來返回列表的第n個元素。函數顯示列表的第n個元素,返回false。
dispnth([H|T], 0, H).
dispnth([H|T], C, Result) :-
dispnth(T, NewC, H), NewC is C -1.
有了這樣 dispnth輸入([1,2,3,4],2,X)。
我應該得到
X=2.
但我越來越假。
任何想法?
檢查你的最後一行:
dispnth([H|T], 0, H).
dispnth([H|T], C, Result) :-
dispnth(T, NewC, H), NewC is C -1.
應該
dispnth([H|T], 0, H).
dispnth([H|T], C, Result) :-
Newc is C - 1,
dispnth(T, Newc, Result).
真棒,謝謝! –
不客氣。順便說一下,在輸入'dispnth([1,2,3,4],2,X).''時,你應該得到'X = 3'而不是'X = 2',就好像你的數組爲零-索引。否則,你應該用1替換第一個謂詞中的0。 – Rafalon