このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/349
#  [1] 授業単元:プログラミング  
#  [2] 問題文(含コード&リンク):  
#  平面上の位置座標(x, y)から相対的に(Δx, Δy)だけ移動した位置座標を求めたいとする。 
#  (x, y)と(Δx, Δy)をそれぞれ配列として表現し、これを引数として受け取って 
#  求めたい座標を返す関数void func1(double x[], double d[], double a[])を定義して、 
#  その動作を確かめるプログラムを書きなさい。ただしx[]が元の位置座標、d[]が移動分、 
#  そしてa[]に答え が代入されるものとする。(x, y)と(Δx, Δy)はキーボードから次で入力するものとする。 
#  すなわち、main()は例えば次のように定義される。 
#   int main() 
#   { 
#       double A[2], B[2], C[2];//Cはfunc1()で答えを得るための配列(返信用封筒と思えばよい) 
#      scanf("%lf %lf %lf %lf", &A[0], &A[1],&B[0],&B[1]); 
#       func1(A,B,C); 
#       //答えは以下で出力されるものとする。 
#      printf("answer = (%lf, %lf)\n", C[0],C[1]); 
#   } 
#     
#  

'平面上の位置座標(x, y)から相対的に(Δx, Δy)だけ移動した位置座標を求めたいとする。(x, y)と(Δx, Δy)をそれぞれ配列として表現し、これを引数として受け取って求めたい座標を返す'([],[],[]).
'平面上の位置座標(x, y)から相対的に(Δx, Δy)だけ移動した位置座標を求めたいとする。(x, y)と(Δx, Δy)をそれぞれ配列として表現し、これを引数として受け取って求めたい座標を返す'([_変数|R1],[_|R2],[_変数|R3]) :-
        var(_変数),
        '平面上の位置座標(x, y)から相対的に(Δx, Δy)だけ移動した位置座標を求めたいとする。(x, y)と(Δx, Δy)をそれぞれ配列として表現し、これを引数として受け取って求めたい座標を返す'(R1,R2,R3),!.
'平面上の位置座標(x, y)から相対的に(Δx, Δy)だけ移動した位置座標を求めたいとする。(x, y)と(Δx, Δy)をそれぞれ配列として表現し、これを引数として受け取って求めたい座標を返す'([(_x,_y)|R1],[(_xの変位,_yの変位)|R2],[(_移動したx,_移動したy)|R3]) :-
        _移動したx is _x + _xの変位,
        _移動したy is _y + _yの変位,
        '平面上の位置座標(x, y)から相対的に(Δx, Δy)だけ移動した位置座標を求めたいとする。(x, y)と(Δx, Δy)をそれぞれ配列として表現し、これを引数として受け取って求めたい座標を返す'(R1,R2,R3).