このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1286978599/859
#  [1] プログラミング演習 
#  [2] 10個のデータ{2, 9, 4, 3, 4, 5, 7, 9, 3, 5}を与えて、その値を*を使い 
#  下向きのグラフで表示してください。数値一個当たり*一個で表示しなければいけません。 
#  実行例 
#  -------------------- 
#  2 
#  *  
#  * 
#   

'10個のデータ{2, 9, 4, 3, 4, 5, 7, 9, 3, 5}を与えて、その値を*を使い下向きのグラフで表示してください。数値一個当たり*一個で表示しなければいけません。' :-
        max([2, 9, 4, 3, 4, 5, 7, 9, 3, 5],Max),
        横向きイメージ(Max,[2, 9, 4, 3, 4, 5, 7, 9, 3, 5],_横向きイメージ),
        転置(_横向きイメージ,_下向きイメージ),
        write('--------------------\n'),
        append(_,[_横方向一行ならび|R],_下向きイメージ),
        concat_atom(_横方向一行ならび,' ',_表示文字列),
        write_formatted('%t\n',[_表示文字列]),
        R = [].

横向きイメージ(_,[],[]) :- !.
横向きイメージ(Max,[N|R1],[[N|_星と空白からなるならび]|R2]) :-
        length(_星と空白からなるならび,Max),
        append(_星ならび,_空白ならび,_星と空白からなるならび),
        length(_星ならび,N),
        all(_星ならび,'*'),
        all(_空白ならび,' '),
        横向きイメージ(Max,R1,R2).