このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/106
#  [1] 授業単元:プログラム  
#  [2] 問題文(含コード&リンク): 
#  ベクトルの加減、ベクトルの内積、2つのベクトルのなす角度cosθ 
#  2つのベクトルを適当に初期化して行う事 
# 

ベクトルの和([A|R1],[B|R2],[C|R3]) :-
    C is A + B,
    ベクトルの和(R1,R3,R3).

ベクトルの差([A|R1],[B|R2],[C|R3]) :-
    C is A - B,
    ベクトルの差(R1,R2,R3).

ベクトルの積([A|R1],[B|R2],[C|R3]) :-
    C is A * B,
    ベクトルの積(R1,R2,R3).

ベクトルの内積([],[],0).
ベクトルの内積([A|R1],[B|R2],X) :-
    C is A * B,
    ベクトルの内積(R1,R2,Y),
    X is C + Y.

ベクトルのノルム(_ベクトル,_ノルム) :-
    ベクトルのノルム(_ベクトル,0,_ノルム).

ベクトルのノルム([],Y,X) :- X is sqrt(Y),!.
ベクトルのノルム([A|R],Y,X) :-
    Z is A ^ 2 + Y,
    ベクトルのノルム(R,Z,X).

ベクトルの角度([X,Y],_ラジアン角度) :-
    _ラジアン角度 is acos(X / sqrt(X^2+Y^2)).