family(
person( brian, fox, date(17,apr,1958), works(bbc, 42000)),
person( donna, fox, date(12,sep,1962), unemployed),
[person( jason, fox, date(01,jan,1988), unemployed)]).
family(
person( andy, do, date(19,sep,1976), works(director, 400000)),
person( min, do, date(5,mar,1975), works(boss, 150000)).
family(
person( andrew, re, date(15,dec,1970), works(professor, 82000)),
person( sue, re, date(28,feb,1975), works(teacher, 36000)).
[person( Tommy, re, date(22,jul,1992), unemployed)]).
family(
person( william, mi, date(20,mar,1968), works(actor, 200000)),
person( vicky, mi, date(23,jul,1973), unemployed),
[person( simon, mi, date(24,dec,1987), works(office workers,28000)),
person( daniel, mi, date(15,oct,1989), unemployed),
person( alice, mi, date(14,apr,1992), unemployed)]).
family(
person( ian, fa, date(12,dec,1961), works(engineer, 200000)),
person( eileen , fa, date(10,feb,1963), unemployed),
[person( alex, fa, date(17,dec,1981), works(engineer, 54000)),
person( abbie, fa, date(03,aug,1990), unemployed)]).
family(
person( zoe, so, date(19,dec,1980), works(doctor, 120000)),
[person( rita, so, date(6,jun,2007), unemployed)]).
family(
person( steven, la, date(16,oct,1943), unemployed),
person( olivia, la, date(11,nov,1947), unemployed),
[person( jessie, la, date(16,jul,1977), works(teacher, 38000)),
person( wayne , la, date(2,nov,1982), works(teacher, 40000)]).
family(
person( paul, si, date(23,apr,1970), works(Stylist, 42000)),
person( eva, si, date(19,mar,1975), unemployed),
[person( owen, si, date(12,aug,1983), works(sale, 15000)]).
family(
person( peggy, da, date(30,dec,1963), works(assistant, 32000)),
[person( roger, da, date(5,may,1973), works(worker, 28000))]).
family(
person( jeff, gi, date(27,may,1980), works(accountants, 62000)),
person( vivian, gi, date(29,may,1981), works(secretary, 32000)),
[person( monica, gi, date(5,may,1993), unemployed)),
person( edward , gi, date(5,may,1993), unemployed)),
person( ada, gi, date(5,may,1994), unemployed)]).
husband(X):-family(X,_,_).
wife(X):-family(_,X,_).
child(X):-family(_,_,Children),
member(X,Children).
exists(Person):-husband(Person);
wife(Person);
child(Person).
dateofbirth(person(_,_,Date,_),Date).
salary(person(_,_,_,works(_,S)),S).
salary(person(_,_,_,unemployed),0).
income :- family(person(A,B,_,S1), person(_,_,_,S2), [person(_,_,_,S3), person(_,_,_,S4)]),
(S1 = works(_, M1) -> L1 = [M1]; L1 = []), (S2 = works(_, M2) -> L2 = [M2|L1]; L2 = L1),
(S3 = works(_, M3) -> L3 = [M3|L2]; L3 = L2), (S4 = works(_, M4) -> L4 = [M4|L3]; L4 = L3),
sumlist(L4, I), write('family '), write(A), write(' '), write(B), write(' : income = '), write(I), nl, false.
結果:
1 ?- income.
family ian fa : income = 254000
false.
還有雙胞胎 我只知道規則 但程式部分還是不太懂~~