このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/154
#  [1] 
#  int型整数 x に対して、その3乗の値 x3 を返す関数 int cube(int  x) を作成せよ。 
#  そしてcubeを用いて、1から10までの整数の3乗値を出力するプログラムを作成せよ。 
#   
#   
#  [2] 
#  一つの行に、n個の “ “(空白)に続いてm個の “*”を順番に出力する関数 void putzs(int n,  int m)を作成せよ。 
#  更にこれを用いて no段のピラミッドを描くプログラムを作成せよ。 
#   
#   
#  no=3の場合 
#   
#    * 
#   *** 
#  ***** 
#   
#   
#   
#   
#  よろしくお願いします。 
#   
# 
# 

putzz(_n,_m) :-
        'n個の" "(空白)に続いて'(_n,_n個の空白),
        'm個の"*"を'(_m,_m個の星),
        順番に出力する(_n個の空白,_m個の星),

'n個の" "(空白)に続いて'(_n,_n個の空白) :-
        length(L,_n),
        all(L,' ').

'm個の"*"を'(_m,_m個の星) :-
        length(L,_m),
        all(L,'*').

順番に出力する(_n個の空白,_m個の星) :-
        putlist(_n個の空白),
        putlist(_m個の星),
        write('\n').

put_list([]) :- !.
put_list([A|R]) :-
        put_char(A),
        put_list(R).

'putzzを用いてno段のピラミッドを描く'(_no) :-
        for(1,N,_no),
        _m is (N - 1) * 2 + 1,
        _n is _no - N,
        putzz(_n,_m),
        N = _no.