このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1288531658/460
#  [1] 授業単元: コンピュータ基礎 
#  [2] 問題文(含コード&リンク):  
#  3行3列の実数行列aijとbijの積を計算するプログラムを作成せよ。 
#  ただし、乗算結果の行列をcijとして計算を行うものとする。 
#  行列の要素への入力は、代入文あるいは初期化子を用いること。 
#  

行列の積(L1,L2,L3) :-
        転置(L2,L22),
        行列の積_1(L1,L22,L3).

行列の積_1([],[],[]) :- !.
行列の積_1([L1|R1],[L2|R2],[L3|R3]) :-
        行列の積_2(L1,L2,L3),
        行列の積_1(R1,R2,R3).

行列の積_2(_,[],[]) :- !.
行列の積_2(L1,[L2|R2],[U|R3]) :-
        行列の積_3(L1,L2,U),
        行列の積_2(L1,R2,R3).

行列の積_3([],[],0) :- !.
行列の積_3([A|R1],[B|R2],X) :-
        U is A * B,
        行列の積_3(R1,R2,Y),
        X is U + Y.