このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/289
#  [1] 授業単元:プログラミング 
#  [2] 問題文: http://ime.nu/www.fluid.cse.nagoya-u.ac.jp/~ishihara/c/Sec7kadai0.html 
#  
#  末尾のプログラム「ベクトル(1次元配列)を引数にする関数の例」を参考にして、
#  ベクトルの大きさを返す関数 mag
#  
#  ベクトルを大きさ1に規格化する関数 normal
#  
#  を作成せよ。

ベクトルの大きさ(_ベクトル,_ベクトルの大きさ) :-
        findsum(_y,(
                    member([_x],_ベクトル),
                    _y is _x * _x),
                S),
        _ベクトルの大きさ is sqrt(S).

ベクトルを大きさ1に規格化する(_ベクトル,_大きさを1に規格化されたベクトル) :-
        ベクトルの大きさ(_ベクトル,_ベクトルの大きさ),
        ベクトルの割り算(_ベクトル,_ベクトルの大きさ,_大きさを1に規格化されたベクトル).

ベクトルの割り算([],_,[]).
ベクトルの割り算([[_v1]|R1],_除数,[[_v2]|R2]) :-
        _v2 is _v1 / _除数,
        ベクトルの割り算(R1,_除数,R2).