>>136
% Prolog
'京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'('http://ime.nu/ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10318.txt').

区の名前,人口,面積のデータを格納する :-
  '京都市の区ごとの人口(人)と面積(平方キロメートル)が記述されているデータがある'(_ウェブサイト),
  get_split_lines(_ウェブサイト,[' '],Lines),
  member([_区の名前,_人口,_面積],Lines),
  assertz('京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積)),
  fail.
区の名前,人口,面積のデータを格納する.

人口についてソートする(_整列されたデータならび) :-
  findall([_人口,_区の名前,_人口,_面積],'京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),L),
  sort(L,L1),
  降順に並べ直しながら鍵項目の削除する(L1,[],_整列されたデータならび).

面積についてソートする(_整列されたデータならび) :-
  findall([_面積,_区の名前,_人口,_面積],'京都市の区ごとの人口と面積のデータ'(_区の名前,_人口,_面積),L),
  sort(L,L1),
  降順に並べ直しながら鍵項目の削除する(L1,[],_整列されたデータならび).

降順に並べ直しながら鍵項目を削除する([],X,X) :- !.
降順に並べ直しながら鍵項目を削除する([[_|L]|R],Y,X) :-
  降順に並べ直しながら鍵項目を削除する(R,[L|Y],X).