考虑以下情况:
card([a,b,c,d,e]).
如何在新的nth0 / 3函数中访问此列表而不重新定义其中的列表元素?
示例:
?- nth0(2, card, X).
X = c
我尝试在线查看,但所有人都有在nth0本身定义的列表。
所以我的问题是,是否可以做这样的事情?如果是这样,怎么样?
答案 0 :(得分:1)
获取card/1
值的方法是将其提供给查询,如下所示:
?- card(Card), nth0(2, Card, X).
由于大写字母是变量,这与你做过类似的事情大致相同:
?- Card = [_,_,X,_,_].
我担心你希望在查询之间看到一些状态,但Prolog不这样做。在下一个查询中,card/1
将再次成为五个未知元素的列表。出于这个原因,你的card/1
定义对我来说有点腥味。你想做什么?