0
fillwith(X,List2):-
length(List2,Y)
,Y>=X;
append(List2,[[]],List3)
,fillwith(X,List3).
這裏的問題是,一旦它達到目標,它會啓動它做一些奇怪的事情,它會回到它所做的第一個調用。 例如:用X [](空列表)填充列表
fillwith(3,List2):-
length(List2,Y)
,Y>=X;
append(List2,[[]],List3)
,fillwith(X,List3).
在這裏的第一呼叫列表2 = [[]],在第二呼叫列表2 = [[],[]],在第三呼叫列表2 = [[],[], []]。然而,當它達到它開始(我猜想回到軌道),並且我最終只與第一個電話。
請給出一個具體的例子,當你的程序應該是真的。我不清楚「X」是關於什麼的。 fillwith(X,[[],[]])是否成功?假裝你已經編寫了程序:顯示你將如何使用它的例子。 – false 2012-04-27 00:29:02
X是要追加到列表中的空列表的數量, ,正如我之前在X爲2時表示的那樣,如果List等於[[],[]],pred應該成功,如果4應該是[[], [],[],[]]。 – 2012-04-27 10:45:57