我有一个函数用于返回列表的第n个元素。
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.
但我变得虚假。
有什么想法吗?
答案 0 :(得分:1)
检查你的最后一行:
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).