在列表中查找编号,其中prolog中的每个元素都有一个元素。

在列表中查找编号,其中prolog中的每个元素都有一个元素。,prolog,Prolog,我尝试实施一个简单的程序,以便在每次遍历元素时查找索引 indexOf(Found,[Found| T],0). indexOf(Found,[H| T],Index):- indexOf( Found,T, Newindex),Index is NewIndex+1. 我尝试过这个,但没有成功;基本上,我在这里尝试了递归和增量 如果有人能给我一些见解,我将不胜感激 如果您将其写成 index_of(X,L,N) :- index_of(X,Xs,0,N) . index_of( X ,

我尝试实施一个简单的程序,以便在每次遍历元素时查找索引

indexOf(Found,[Found| T],0).
indexOf(Found,[H| T],Index):- indexOf( Found,T, Newindex),Index is NewIndex+1.
我尝试过这个,但没有成功;基本上,我在这里尝试了递归和增量


如果有人能给我一些见解,我将不胜感激

如果您将其写成

index_of(X,L,N) :-
  index_of(X,Xs,0,N) .

index_of( X , [X|_] , N , N ) .
index_of( X , [_|L] , T , N ) :-
  T1 is T+1 ,
  index_of(X,L,T1,N) .

您将
Index
误键入为
Newindex
。任何一个好的Prolog编译器都会警告你这一点。@larsmans:我认为你的建议应该读为
NewIndex as NewIndex
@capelical:啊,是的,谢谢。