我在Prolog中有最后一个练习要在我一个人做的课上解决,我不知道该做什么

我在Prolog中有最后一个练习要在我一个人做的课上解决,我不知道该做什么,prolog,functor,Prolog,Functor,我有最后一个问题,是我在网上免费学习的,我不知道从哪里开始解决,我甚至不知道这个谓词是做什么的 写入谓词替换参数项、值、新项,该项为真 如果它将作为变量的术语替换为 列表«值»。也就是说,术语的第一个变量替换为 列表值的第一项,第二项变量为 替换为列表值的第二项,依此类推,直到列表结束 值变为空。最后,它返回新的术语NewTerm。 使用内置谓词,如functor/3、=../2、var/1、nanvar/1、, 等等,目标的例子 a) ?- replace_var_args(father(ya

我有最后一个问题,是我在网上免费学习的,我不知道从哪里开始解决,我甚至不知道这个谓词是做什么的

写入谓词替换参数项、值、新项,该项为真 如果它将作为变量的术语替换为 列表«值»。也就是说,术语的第一个变量替换为 列表值的第一项,第二项变量为 替换为列表值的第二项,依此类推,直到列表结束 值变为空。最后,它返回新的术语NewTerm。 使用内置谓词,如functor/3、=../2、var/1、nanvar/1、, 等等,目标的例子

a) ?- replace_var_args(father(yannis,X), [anna], NewTerm). NewTerm =
father(yannis,anna),
b) ?- replace_var_args(f(a,X,g(b), Y,h(a,Z)), [b,c], NewTerm). NewTerm =
f(a,b,g(b),c,h(a,Z)),
c) ?- replace_var_args(f(a,X,f(b),Y,h(a,Z)), [b,c,d], NewTerm). NewTerm =
f(a,b,g(b),c,h(a,d)).
d) ?- replace_var_args(t(X, Y, Z,a,f(Z,b)), [1,2,3], NewTerm). NewTerm =
t(1,2,3,a,f(Z,b)).

你到底不清楚什么?我不明白替换词Prolog中的所有内容都是一个术语,所以fooX,Y就是一个术语。[a,b]是一个列表,从技术上讲,也是一个术语。他们想让你写一个谓词来做这件事:替换_var_argsfox,Y,[a,b],NewTerm,然后给你,NewTerm=fooa,b,这意味着它被替换了,X=a,Y=b。请注意,在Prolog中,变量以大写字母开头,而非变量以小写字母开头。他们给了你几个其他的例子。在替换变量argstX,Y,Z,a,fZ,b[1,2,3]中,新项。NewTerm=t1,2,3,a,fZ,b,谓词替换了X=1,Y=2,等等。很有意思的是知道在这种情况下应该发生什么,例如:?-replace_var_argsfox,X,[a,b],New。它应该失败吗?