List 初始化列表的序言长度将新列表添加到现有列表中

List 初始化列表的序言长度将新列表添加到现有列表中,list,prolog,List,Prolog,首先我使用length获得Res列表的大小(ResultLength),然后我将使用ResultLength初始化另一个列表Carry。 然而,在我这样做之后,ListLoadd和ListToAdd1现在都有了前面提到的携带列表,我相信这不应该发生 puzzle(ListToAdd,ListToAdd1,Res,_,Carry) :- length(Res,ResultLength), length(Carry,ResultLength), domain(Carry,0,1).

首先我使用length获得Res列表的大小(ResultLength),然后我将使用ResultLength初始化另一个列表Carry。 然而,在我这样做之后,ListLoadd和ListToAdd1现在都有了前面提到的携带列表,我相信这不应该发生

puzzle(ListToAdd,ListToAdd1,Res,_,Carry) :-
   length(Res,ResultLength),
   length(Carry,ResultLength),
   domain(Carry,0,1).
查询完成:拼图([D,O,N,A,L,D],[G,E,R,A,L,D],[R,O,B,E,R,T],X,L)。 长度前(进位、结果长度): 写(列表添加):[[u 5459、[u 5499、[u 5539、[u 5319] 写入(列表至ADD1):[[u5199、[u5239、[u5279、[u5319] 长度(进位、结果长度)后: 写(进位):[[U 12043、[U 12107、[U 12171、[U 12235] 写入(列表添加):[[U 5459、[U 5499、[U 5539、[U 12043、[U 12107、[U 12171、[U 12235]、[U 5319] 书写(列表至ADD1):[[u5199、[u5239、[u5279、[u12043、[u12107、[u12171、[u12235]、[u5319] 我使用的是SICStus Prolog 4.3.2


有人知道发生了什么吗?

您遇到麻烦的原因如下:

Query done: puzzle([D,O,N,A,L,D],[G,E,R,A,L,D],[R,O,B,E,R,T],X,L). Before length(Carry,ResultLength): write(ListToAdd): [_5459,_5499,_5539,_5319] write(ListToAdd1): [_5199,_5239,_5279,_5319] After length(Carry,ResultLength): write(Carry): [_12043,_12107,_12171,_12235] write(ListToAdd): [_5459,_5499,_5539, [_12043,_12107,_12171,_12235],_5319] write(ListToAdd1): [_5199,_5239,_5279, [_12043,_12107,_12171,_12235],_5319] 明白了吗?如果没有,请考虑:

?- puzzle([D,O,N,A,L,D],[G,E,R,A,L,D],[R,O,B,E,R,T],X,L).
-拼图([D,O,N,A,L,D],[G,E,R,A,L,D],[R,O,B,E,R,T],X,L)。 ^ ^ ^ +-------------+--------------------+ 这些逻辑变量:)


多注意细节。你的问题会有好处,你会得到更多更好的答案!比如?如果您能提供一两个例子“lenght”、“ListoAdd”、“然后我会说要初始化列表的大小”、
length(Carry,ResultLength)domain(Carry,0,1)
您是通过什么查询来获得这些结果的,我将从现在开始努力做得更好,谢谢您的提示!)多么讽刺啊,我爱上你了xD我花了整整一个下午的时间在这件事上,我一辈子都想不出来,非常感谢!!好吧下次请尽快提供所有(潜在)相关信息。 ?- puzzle([D,O,N,A,L,D],[G,E,R,A,L,D],[R,O,B,E,R,T],X,L). ^ ^ ^ +-------------+--------------------+