我正在定义一个名为alternate_func(Ps,P)的函数,其中Ps是一个列表的列表,而P是Ps中所有元素的列表,其行为如下:
?- alternate_func([[p,q],[r,s]],P).
P=[p,r,q,s]. (case 1)
?- alternate_func([P,Q,R],[p,q,r,s,t,u]).
P=[p,s], Q=[q,t], R=[r,u]. (case 2)
?- alternate_func([Q],[1,2,3]).
Q=[1,2,3]. (case 3)
?- alternate_func([[4,5,6],[3,1],[4,1,2]],X).
false. (because Length of sublists must be same) (case 4)
这是我迄今为止尝试过的内容:
alternate_func([[], L], L).
alternate_func([[H|T], []], [H|T]).
alternate_func([[X|L1], [Y|L2]], [X,Y|L3]) :-
alternate_func([L1, L2], L3).
我能正确获取第1个案例的结果,但对于第2、3和4个案例失败了。这里的问题是什么?