このディレクトリの索引

#  [7回演習問題1.2.3] 整数を要素にもつリストが与えられたとき、
#  正の数と負の数どちらがどれだけ多いか答える述語、 which/2 を作れ。
#  正の数がn個多いときは第二引数がn、負の数の場合は-n、等しい場合は0とする。
#  動作例?-which([2,-3,4],X).→X=1

which(L,X) :-
        which(L,0,0,X).

which([],N1,N2,X) :-
        X is N1 - N2.
which([0|R],N1,N2,X) :-
        which(R,N1,N2,X).
which([N|R],N1,N2,X) :-
        N > 0,
        N3 is N1 + 1,
        which(R,N3,N2,X).
which([N|R],N1,N2,X) :-
        N < 0,
        N3 is N2 + 1,
        which(R,N1,N3,X).