2
Я хочу получить сумму окладов детей семьи. Я работаю в Turbo Prolog. Насколько я понимаю, howManyChildrenSalary хорошо работает в Visual Prolog.Сумма зарплат в структуре семьи в Прологе
family (fm("Ivan","Ivanov", dat(1,"may",1980),wor("ingener",0)),
fm("Anna","Ivanov", dat(15, "january",1945),wor("doctor",1800)),
[fm("Oleg","Ivanov", dat(22, "march", 1970), wor("student",720)),
fm("Antin","Ivanov", dat(22, "march", 1970), wor("student",820)),
fm("Inna", "Ivanov", dat(7, "july", 1975), wor("pupil",100))]).
howManyChildrenSalary([],0).
howManyChildrenSalary([fm(_,_,_,wor(_,Salary))|Children],N):-howManyChildren(Children,N1),N=Salary+N1.
profit (Surname,Average) :-
family(X,Y,Children),
X = fm(_,Surname,dat(_,_,Year),wor(_,0)),
Y = fm(_,Surname,_,wor(_,SalaryMom)),
Year > 2014-40,
howManyChildrenSalary(Children,ChildrenSalary),
howManyChildren(Children,N),
Average = (SalaryMom+ChildrenSalary)/(N+2).
Так что в моем случае я получаю ChildrenSalary = + 1 720 + 1 = 722 вместо этого, если ChildrenSalary = 720 + 820 + 100 = 1640. Зачем мне это делать и как это исправить?
Благодарим заранее!