经过长时间的搜索谷歌我无法找到一个明确的答案:在Prolog自己做递归很容易.我的主要问题是了解放置累加器和计数器的位置.这是一个例子:
nXlist(N,X,[X|T]):-
N \=0,
N1 is N-1,
nXList(N1,X,T).
nXList(0,_,[]).
media([X|L], N, Soma):-
media(L, N1, Soma1),
N is N1 + 1,
Soma is Soma1 + X.
media([], 0, 0).
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,我在递归之前使用了一个计数器,但在第二个例子中,我在AFTER之后使用它.我之所以做到这一点的原因是所谓的尝试并看到原因我真的无法理解为什么有时候之前,有时是之后......