List 初始化列表的序言长度将新列表添加到现有列表中
首先我使用length获得Res列表的大小(ResultLength),然后我将使用ResultLength初始化另一个列表Carry。 然而,在我这样做之后,ListLoadd和ListToAdd1现在都有了前面提到的携带列表,我相信这不应该发生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).
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).
^ ^ ^
+-------------+--------------------+