List 在Prolog中创建一个nxn矩阵(使用列表?)

List 在Prolog中创建一个nxn矩阵(使用列表?),list,prolog,List,Prolog,我想在SWI Prolog中有一个大小为nxn的矩阵。一个可能的解决方案是创建一个由N个大小为N的列表组成的列表,但现在可以确定如何在Prolog中对其进行编码 length_list(N, L) :- length(L, N). n_matrix(N, Xss) :- length(Xss, N), maplist(length_list(N),Xss). maplist(_, []). maplist(C, [X|Xs]) :- call(C,X), map

我想在SWI Prolog中有一个大小为nxn的矩阵。一个可能的解决方案是创建一个由N个大小为N的列表组成的列表,但现在可以确定如何在Prolog中对其进行编码

length_list(N, L) :-
   length(L, N).

n_matrix(N, Xss) :-
   length(Xss, N),
   maplist(length_list(N),Xss).

maplist(_, []).
maplist(C, [X|Xs]) :-
   call(C,X),
   maplist(C, Xs).
为了避免使用笨拙的辅助定义,我们可以使用:


就在昨天,我在想,让length_list/2始终可用会有多有用:)
n_matrix(N, Xss) :-
    length(Xss, N),
    maplist(N+\Xs^length(Xs,N),Xss).