I want to create a multidimensional array in SICStus which woudld do pretty much the same thing as the ECLiPSe Dim function. For that I made this code, but unfortunetly it always enters in an infinite loop. Can anyone fix the problem?
%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).