このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/304
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク): 
#  January, February, March, April, May, June, July, August, September,October, November, December 
#  を12個の文字列をポインタの配列を用いて宣言し、ASCIIコードで昇順に並び替えなさい。 
#  char *month[12] = { “January”, “February”, …, “December” } ; 
#  ASCIIコードで昇順 
#  A<B<C< … <Z , i文字目まで同じ場合は、i+1文字目の大小で順序をつける 
#   [3.1] OS:windows 
#   [3.2] コンパイラ名とバージョン:cygwin 
#   [3.3] 言語: C 
#  [4] 期限: 2011/7/6 
#  [5] その他の制限:  
#  現在ポインタを習っているところです。 
#  出来るだけ簡単に書いてもらえると助かります。 
# 
# 

'January, February, March, April, May, June, July, August, September,October, November, December を12個の文字列をASCIIコードで昇順に並び替える' :-
        split('January, February, March, April, May, June, July, August, September,October, November, December',[' ',','],L),
        バブルソート(L,_昇順に並べ替えられた12個の文字列).

バブルソート(_対象ならび,_整列済みならび) :-
        交換(_対象ならび,_対象ならびの一),!,
        バブルソート(_対象ならびの一,_整列済みならび).
バブルソート(_整列済みならび,_整列済みならび).

交換([],[]) :- !,fail.
交換([A,B|R],[B,A|R]) :-
        A @> B,!.
交換([A|R1],[A|R2]) :-
        交換(R1,R2).