我想在SWI-Prolog中有一个大小为N x N的矩阵。可能的解决方案是创建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).
为了避免笨拙的辅助定义,我们可以使用
library(lambda)
:n_matrix(N, Xss) :-
length(Xss, N),
maplist(N+\Xs^length(Xs,N),Xss).
关于list - 在Prolog中创建N x N矩阵(使用列表?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22950234/