このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/654
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク): 問題文はリンク先にあります 
#  http://ime.nu/codepad.org/3vEhNLeD 
#  /* 問題文
#  (1)行列の乗算を行う関数
#  (2)行列の(i,j)要素に値をセットする関数
#  (3)行列の(i,j)要素の値を得る関数
#  (4)行列の第p行と第q行を入れ替える関数 を作りなさい。*/

行列の第p行と第q行を入れ替える(_行列,_p,_q,_第p行と第q行を入れ替えられた行列) :-
        行列の第p行と第q行を入れ替える(1,_p,_q,_行列,X,Y,_第p行と第q行を入れ替えられた行列).

行列の第p行と第q行を入れ替える(_,_,_,[],_,_,[]).
行列の第p行と第q行を入れ替える(_p,_p,_q,[X|R1],X,Y,[Y|R2]) :-
        _n is _p + 1,
        行列の第p行と第q行を入れ替える(_n,_p,_q,R1,X,Y,R2).).
行列の第p行と第q行を入れ替える(_q,_p,_q,[Y|R1],X,Y,[X|R2]) :-
        _n is _q + 1,
        行列の第p行と第q行を入れ替える(_n,_p,_q,R1,X,Y,R2).
行列の第p行と第q行を入れ替える(_n,_p,_q,[A|R1],X,Y,[A|R2]) :-
        _n_2 is _n + 1,
        行列の第p行と第q行を入れ替える(_n_2,_p,_q,R1,X,Y,R2).