考虑到矩阵是一个行列表,如何检查我的矩阵是否真的是一个矩阵。
我需要编写一个谓词size(M, Row, Col)
。
如果不是矩阵,它应该失败。
如果是矩阵,则应计算行数和列数。
具有预期答案的示例查询:
?- size([[1,2],[3,4],[5,6]], Rows, Cols).
Rows = 3, Cols = 2.
?- size([[1,2],[3,4,5]], Rows, Cols).
no
我已经编写了下一个代码,我只需要获取行数和列数,但我不知道如何比较每一行。如果行的长度不一样,那么它应该返回" no"而不是打印行数和列数。
代码:
size([], 0, 0).
size(M, R, C) :-
length(L, R).
size([H|T], R, N) :-
length(H, N),
!.