2012-04-30 39 views
1

我試圖對給定列表項進行一些操作,嘗試聲明新列表並向其添加項目以滿足特定條件。我必須遞歸地調用這個函數。所以,第一次列表是空的,我想插入一個項目。第二次,它將有一個元素,並添加另一個元素使兩個元素。第三次有兩個元素,並添加一個元素等等。定義新列表並遞歸添加列表中的項目通過在Prolog中追加

請幫助我如何在prolog和addr元素中通過附加遞歸函數調用來聲明列表。

回答

2

沒有必要在Prolog中聲明條款;他們一旦寫下來就會存在。所以如果你寫[],它是空的列表。你提到的東西是兩個列表之間的關係:一個列表稱爲List0,另一個列表稱爲List,它是帶有附加元素的List0。所以,你必須像

list0_list(List0, List) :- 
    .... 

持有,如果列表是列表0你想要的元素的關係。你只需要描述這種關係何時成立,並且通過在規則的主體中陳述必要的條件來做到這一點。