如何在 Prolog 的列表中获取数字的索引?

How do I get the index of a number in a list in Prolog?

请注意,我是 prolog 的新手,所以这可能是一个有点愚蠢的问题,但是, 基本上我想要完成的是从自然数中获取索引,除了 0, 例如

list = [3,0,0,0,0,6]

3 的索引为 1,6 的索引为 6

谢谢 :D

可以使用内置谓词nth1/3,如下:

?- nth1(1, [one, two, three], Element).
Element = one.

?- nth1(Index, [one, two, three], two).
Index = 2 ;
false.

?- nth1(Index, [one, two, three, one], one).
Index = 1 ;
Index = 4.

?- nth1(Index, [one, two, three], Element).
Index = 1,
Element = one ;
Index = 2,
Element = two ;
Index = 3,
Element = three.

要从 0(而不是 1)开始索引,请使用 nth0/3