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