このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1200175247/547 
#[1] 授業単元: プログラミング初歩  
#[2] 問題文(含コード&リンク):(文字列を与えられた時、アルファベットを大文字小文字区別せずに出現頻度順  
#に小文字で並べた文字列を返すプログラムを作りなさい。)  
#[3] 環境  
# [3.1] OS: (WindowsXP)  
# [3.2] バージョン: (Ruby 1.8.6 )  
# [3.3] 言語: (Ruby  
#[4] 期限: ([2009年06月01日21:00まで]  
#[5] その他の制限: 配列などの初歩的な概念まで

'文字列を与えられた時、アルファベットを大文字小文字区別せずに出現頻度順に小文字で並べた文字列を返すプログラムを作りなさい。'(_文字列,_アルファベットを大文字小文字区別せずに出現頻度順に小文字で並べた文字列) :-
        アルファベットを大文字小文字区別せずに(_文字列,_大文字を小文字に変換した文字列),
        出現頻度順に小文字で並べた文字列を返す(_大文字を小文字に変換した文字列,_アルファベットを大文字小文字区別せずに出現頻度順に小文字で並べた文字列).

アルファベットを大文字小文字区別せずに(_文字列,_大文字を小文字に変換した文字列) :-
        文字列を小文字に変換する(_文字列,_大文字を小文字に変換した文字列).

文字列を小文字に変換する(_文字列,_大文字を小文字に変換した文字列) :-
        to_lower(_文字列,_大文字を小文字に変換した文字列).

出現頻度順に小文字で並べた文字列を返す(_大文字を小文字に変換した文字列,_アルファベットを大文字小文字区別せずに出現頻度順に小文字で並べた文字列) :-
        atom_chars(_大文字を小文字に変換した文字列,_大文字を小文字に変換した文字列),
        降順に整列(_大文字を小文字に変換した文字列,_降順に整列した大文字を小文字に変換した文字ならび),
        atom_chars(_アルファベットを大文字小文字区別せずに出現頻度順に小文字で並べた文字列,_降順に整列した大文字を小文字に変換した文字ならび).

降順に整列(L1,L2) :-
        sort(L1,L3),
        reverse(L3,L2).