我有一个矩阵,每个元素都应该是唯一的。说实话,每个元素都可以在[1,19]中取整数值,但是我对使用length(List, 3)
的变量处理列表感到困惑,所以现在我有这个:
matrix([[a,b,c],[d,e,f],[g,h,i]]).
row(M, N, Row) :-
nth1(N, M, Row).
column(M, N, Col) :-
transpose(M, MT),
row(MT, N, Col).
get_row(N, Row) :-
matrix(M),
row(M, N, Row).
diff_matrix(M) :-
matrix(M),
foo(M).
foo([]).
foo([H|T]) :-
length(H, Len),
write(Len),
foo(T).
different_from([], _).
different_from([H|T], E) :-
E \= H,
different_from(T, E).
是否有继续使用此代码或其他方法的想法?我的意思是如果我的尝试不够好,我没有问题替换它。
修改:
可能的查询:diff_matrix([[1,2,3],[4,5,6],[7,8,9]]).