このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1322562648/311
#  [1] 授業単元: C言語 
#  [2] 問題文(含コード&リンク): http://ime.nu/www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4921 
#  
#  課題2 与えられたリストlistを二分割した結果をlist1、list2として返す
#    再帰関数を作成せよ。プロトタイプ宣言は次のとおりとする。
#    void divideList(struct cell *list, struct cell *list1, struct cell *list2);
#   分割は、listの奇数番目のデータをlist1に、偶数番目のデータをlist2に
#    格納するという手順で行うこと。なお、並べ替え後に元のリストが破壊されて
#    いても構わない。(printList(list)の結果が変化しても構わない。)
#   また、この関数の動作を確かめるmain()関数を作成し、動作を確かめよ。
#  

'与えられたリストlistを二分割した結果をlist1、list2として返す。分割は、listの奇数番目のデータをlist1に、偶数番目のデータをlist2に格納するという手順で行うこと'([],[],[]).
'与えられたリストlistを二分割した結果をlist1、list2として返す。分割は、listの奇数番目のデータをlist1に、偶数番目のデータをlist2に格納するという手順で行うこと'([A],[A],[]) :- !.
'与えられたリストlistを二分割した結果をlist1、list2として返す。分割は、listの奇数番目のデータをlist1に、偶数番目のデータをlist2に格納するという手順で行うこと'([A,B|R1],[A|R2],[B|R3]) :-
        '与えられたリストlistを二分割した結果をlist1、list2として返す。分割は、listの奇数番目のデータをlist1に、偶数番目のデータをlist2に格納するという手順で行うこと'(R1,R2,R3).