ECLiPSe Dim 関数とほぼ同じことを行う多次元配列を SICStus で作成したいと考えています。そのためにこのコードを作ったのですが、残念ながらいつも無限ループに陥ってしまいます。誰でも問題を解決できますか?
%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).