我在Prolog的最后一次练习中解决了我独自完成的课程并且不知道该怎么做

时间:2015-03-31 16:34:48

标签: prolog functor

我从网上免费课程中解决了这个问题,我不知道从哪里开始我甚至无法理解这个谓词的作用......

  

写谓词replace_var_args (Term, Values, NewTerm)这是真的   如果它取代Term的条款,这些条款是变量的值   列表«值»。也就是说,Term的第一个变量被替换为   列表Values的第一项,Term的第二个变量是   由列表Values的第二个术语替换,依此类推,直到列表为止   Values变空。最后,它返回新术语NewTerm。   使用内置谓词,例如functor/3=../2var/1nanvar/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)).

0 个答案:

没有答案