使用列表的第N个值统一术语

时间:2013-03-06 17:44:28

标签: prolog

我在实现Prolog谓词vector_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]

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

在标准库中,library(lists)(自动加载,您不需要做任何事情)有两个谓词:nth0/3nth1/3完全符合您的需要。例如:

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

顺便说一下,SWI-Prolog网页有一个非常有用的搜索功能。在那里输入nth会给你答案。