Я хочу создать многомерный массив в SICStus, который будет выполнять почти то же самое, что и функция ECLiPSe Dim.Для этого я сделал этот код, но, к сожалению, он всегда входит в бесконечный цикл.Кто-нибудь может решить проблему?
%multDimensional Array 2d
mult(X,Y,Final):- mult(X,Y,0,Final).
mult(X,_,X,[]).
mult(X,Y,Count,[A|B]) :- length(List,Y),
A = List,
Count1 is Count+1,
mult(X,Y,Count1,B).
%multDimensional Array 3d
mult2(Z,X,Y,Final):- mult2(X,Y,Z,0,Final),!.
mult2(_,_,Z,Z,[]).
mult2(X,Y,Z,Count,[A|B]):- multi(X,Y,0,Final),
Count1 is Count+1,
A = Final,
mult2(X,Y,Z,Count1,B).
multi(X,_,X,[]).
multi(X,Y,Count,[A|B]) :- length(List,Y),
A = List,
Count1 is Count+1,
multi(X,Y,Count1,B).