%% 知識情報処理実習 r9の練習問題 解答例 % 1. male(tom). male(bob). male(jim). female(liz). female(pat). gather_men(Men) :- setof(X,male(X),Men). number_of_men(N) :- gather_men(Men), list_length(Men,N). list_length([],0). list_length([_|L],N) :- list_length(L,N1), N is N1+1. test9_1_1(Men) :- gather_men(Men). test9_1_2(Men) :- number_of_men(Men). % 2. exist_path :- start(X), goal(Y), connected(X,Y). goal(g). start(s). edge(s,a). edge(s,b). edge(a,c). edge(a,d). edge(b,e). edge(b,g). edge(c,g). edge(d,g). edge(e,g). connected(N,M) :- edge(N,M). connected(N,M) :- edge(N,L), connected(L,M). test9_2 :- exist_path.