如何在 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。
请注意,我是 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。