How can I transpose a list like [[1,2,3][4,5,6][6,7,8]] to [[1,4,6],[2,7,8],[3,6,9]]?
[[1,2,3][4,5,6][6,7,8]]
[[1,4,6],[2,7,8],[3,6,9]]
To depict it: I\'d like to flip the matrix 90 degree
An iterative approach:
trans([H|R],[H1|R1]):-trans2([H|R],[H|R],[],[H1|R1],0),!. trans2([A|_],_,_,[],N):-length(A,N). trans2(M,[],H1,[H1|R1],N):-N1 is N+1, trans2(M,M,[],R1,N1). trans2(M,[H|R],L,[H1|R1],N):-nth0(N,H,X), append(L,[X],L1),trans2(M,R,L1,[H1|R1],N).