- 158 名前:デフォルトの名無しさん mailto:sage [2010/01/04(月) 07:28:00 ]
- >>109
% Prolog 出題から離れますが、2次元のリストの指定された列を取り出すユーティリティは 全ての行に対して位置指定により列を選択する(_,[],[]) :- !. 全ての行に対して位置指定により列を選択する(_選択する列位置ならび,[_行|R1],[L|R2 ]) :- 列の選択(_選択する列位置ならび,_行,L), 全ての行に対して位置指定により列を選択する(_選択する列位置ならび,R1,R2). 列の選択([],_,[]) :- !. 列の選択([_列位置|R1],_行,[A|R2]) :- integer(_列位置), list_nth(_列位置,_行,A), 列の選択(R1,_行,R2),!. 列の選択([A|R1],_行,R2) :- \+(integer(A)), B は A, integer(B), 列の選択([B|R1],_行,R2),!. 列の選択([A|R1],_行,[B|R2]) :- \+(integer(A)), B は A, \+(integer(B)), 列の選択(R1,_行,R2),!.
|

|