這個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序列,每個元素加倍...
您是否嘗試過運行它?你有沒有遇到任何錯誤?你是否嘗試過顯示一些數據,因爲它通過這段代碼看它是如何改變的? –