Prolog 将项与列表的第n个值统一

Prolog 将项与列表的第n个值统一,prolog,Prolog,我在实现Prolog谓词时遇到了问题,vector\u reference(L,N,V),因此当给定一个列表“L”和一个索引“N”时,它会将V与列表的第N个值统一起来 打印输出示例如下所示: ?- vector_reference([2,3,4], 3, V). V = 4 ?- vector_reference([2, [2,3],’hello’]),2,V). V = [2,3] 任何帮助都将不胜感激。在标准库中,库(列表)(自动加载,您无需执行任何操作)有两个谓词:nth0/3和nth

我在实现Prolog谓词时遇到了问题,
vector\u reference(L,N,V)
,因此当给定一个列表“L”和一个索引“N”时,它会将V与列表的第N个值统一起来

打印输出示例如下所示:

?- vector_reference([2,3,4], 3, V).
V = 4

?- vector_reference([2, [2,3],’hello’]),2,V).
V = [2,3]

任何帮助都将不胜感激。

在标准库中,
库(列表)
(自动加载,您无需执行任何操作)有两个谓词:
nth0/3
nth1/3
,它们完全满足您的需要。例如:

?- nth1(2, [2,[2,3],hello], V).
V = [2, 3].

顺便说一句,SWI Prolog网页有一个非常有用的搜索功能。在那里键入
n
就可以给你答案。

我的老师从来没有提到过这件事,只是把我们扔进了狮子窝。这非常有效,因为我刚刚做了向量_引用(L,N,V):-nth1(N,L,V)。在写了这么多行却一无所获之后。。。