2
reverse([], X, X).
reverse([H|Original], Result, Reverse) :-
reverse(Original, Result, [H|Reverse]).
?- reverse([1,2,3], X, []).
X = [3,2,1].
因此,上面是一個相當簡單的Prolog程序來反轉列表。我只是想找個人向我解釋反向規則中的Reverse
變量是如何結果的。從我的想法來看,我將原始列表的頭部添加到新列表Reverse
的頭部,從而顛倒了列表。我沒有與變量Result進行交互,爲什麼它沒有任何東西?瞭解序言列表和遞歸
我已經在這幾天真的難住了,如果有人能夠清楚這一點,我會非常感激!
PS。我也在努力爲什麼reverse([], X, X).
是需要這個工作。
謝謝!我猜我遇到的問題是理解兩個規則之間的關係 –