Prolog - 从nth0 / 3

时间:2017-10-04 01:37:15

标签: prolog

考虑以下情况:

card([a,b,c,d,e]).

如何在新的nth0 / 3函数中访问此列表而不重新定义其中的列表元素?

示例:

?- nth0(2, card, X).
X = c

我尝试在线查看,但所有人都有在nth0本身定义的列表。

所以我的问题是,是否可以做这样的事情?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

获取card/1值的方法是将其提供给查询,如下所示:

?- card(Card), nth0(2, Card, X).

由于大写字母是变量,这与你做过类似的事情大致相同:

?- Card = [_,_,X,_,_].

我担心你希望在查询之间看到一些状态,但Prolog不这样做。在下一个查询中,card/1将再次成为五个未知元素的列表。出于这个原因,你的card/1定义对我来说有点腥味。你想做什么?