这个Prolog程序是做什么的?我认为它比较了两个变量?当我读到这条规则对我来说说m
有m2
的关系,如果x
有关y
以下Prolog程序是做什么的?
m(X, Y) :-
m2(X, Y, [ ]).
m2([ ], X, X).
m2([X|Y], [X, X|Z], W) :-
m2(Y, Z, W).
这个Prolog程序是做什么的?我认为它比较了两个变量?当我读到这条规则对我来说说m
有m2
的关系,如果x
有关y
以下Prolog程序是做什么的?
m(X, Y) :-
m2(X, Y, [ ]).
m2([ ], X, X).
m2([X|Y], [X, X|Z], W) :-
m2(Y, Z, W).
让我们尝试最普遍的查询:
?- m(X,Y).
X = Y, Y = [] ;
X = [_G3566],
Y = [_G3566, _G3566] ;
X = [_G3566, _G3575],
Y = [_G3566, _G3566, _G3575, _G3575] ;
X = [_G3566, _G3575, _G3584],
Y = [_G3566, _G3566, _G3575, _G3575, _G3584, _G3584] ;
...
所以,伊苏似乎是简单地Xs序列,每个元素加倍...
您是否尝试过运行它?你有没有遇到任何错误?你是否尝试过显示一些数据,因为它通过这段代码看它是如何改变的? –