Суть программы - посчитать количество дней в летних месяцах.
Имеется следующий код:
% Copyright
implement main
open core, console, math, string
class facts
месяц : (string Имя_Месяца, unsigned Номер_по_порядку, unsigned Количество_дней).
class predicates
sumli : (unsigned C,unsigned Sum [out]) .
clauses
месяц("Январь", 1, 31).
месяц("Февраль", 2, 28).
месяц("Март", 3, 31).
месяц("Апрель", 4, 30).
месяц("Май", 5, 31).
месяц("Июнь", 6, 30).
месяц("Июль", 7, 31).
месяц("Август", 8, 31).
месяц("Сентябрь", 9, 30).
месяц("Октябрь", 10, 31).
месяц("Ноябрь", 11, 30).
месяц("Декабрь", 12, 31).
sumli(N,0):- N>8,!.
sumli(N,C):- месяц(_, N, Count),sumli(N+1,Count1),C=Count1+Count.
run() :-
setConsoleTitle("задача 8"),
sumli(6,Sum),
/* Sum = 0,
месяц(_, N, Count),
N >= 6,
N <= 8,
fail()
or
write("ответ: ", Sum),*/
write(Sum),
nl,
write("для закрытия нажмите любую клавишу"),
clearInput(),
_ = readChar().
% place your own code here
end implement main
goal
console::run(main::run).
Но, выдает ошибку
e631 The predicate 'main::sumli/2 (i,o)', which is declared as 'procedure', is actually 'nondeterm' main.pro