このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1328276597/45
#  [1] 授業単元: 情報処理 
#  (3)要素数n個のint型配列 a の各成分の値を2倍したものを別の配列bに代入する関数  void atob(int *a, int *b, int n) を作成せよ。ここでa,bにはポインタを用いること。 
#  この関数を用いてint型配列 va=(1, 2, 1) の各成分の値を2倍したものを別の配列 vbに代入し、vbの各成分を出力するプログラムを作成せよ。  
#   

'要素数n個のint型配列 a の各成分の値を2倍したものを別の配列bに代入する関数  void atob(int *a, int *b, int n) を作成せよ'(_n,_b) :-
        'n個の成分の値を持つ_aを作成'(_n,_a),
        length(_b,_n),
        atob(_a,_b).

'n個の成分の値を持つ_aを作成'(_n,_a) :-
        length(_a,_n),
        findall(N,(
                    append(_,[N|_],_a),
                    N is random(1000)),
                _a).

atob([],[]).
atob([N|R1],[N2|R2]) :-
        N2 is N * 2,
        atob(R1,R2).