我的测试用例
trans([[1,2],[3,4],[5,6]], R).
R = [[1,3,5],[2,4,6]] ;
No
我在下面写的代码转换我的矩阵
list_head_tail([H|T], H, T).
decompose(X, L1, L2) :-
maplist(list_head_tail, X, L1, L2).
trans(X,[L1|R]):-
decompose(X,L1,L2),
trans(L2,R).
我知道我们可以通过几种方式解决这个问题。我想如何解决我的代码在下面破解的问题。
Exit: (8) decompose([[1, 2], [3, 4], [5, 6]], [1, 3, 5], [[2], [4], [6]]) ? creep
Call: (8) trans([[2], [4], [6]], _G15907) ? creep
显然,当我收到列表列表时,代码会中断。我该如何处理。
答案 0 :(得分:2)
你的trans/2
总是以递归方式调用自身直到失败。缺少一个基本案例。也许尝试类似的事情:
trans([[]|_], []).