簡體   English   中英

Prolog遞歸列表比較

[英]Prolog Recursive List Comparison

我剛剛啟動Prolog,為了進行練習,我嘗試比較兩個列表,看看第一個列表是否比第二個列表大一個元素。 到目前為止,我已經有了基本情況,但是對於任何包含多個元素的列表,它都會無限循環。 誰能解釋為什么會這樣? 任何信息表示贊賞。

one_longer([H],[]).
one_longer([H|T],[H2|T2]) :- one_longer([T],[T2]).

該子句應為:

one_longer([H|T],[H2|T2]) :- one_longer(T,T2).

one_longer([T],[T2])形成一個只有一個元素的新列表時,這會導致觀察到的循環,因為再次應用該規則會導致不斷詢問one_longer([[]],[[]])在哪里one_longer(T,T2)one_longer應用於兩個列表的其余部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM