Мне нужно найти максимальное число в списке. НапримерПролог найти максимальное число в списке
goal: maxEVEN([4,10,-2,-1,23],M).
M=10.
Я написал этот следующий код:
maxeven([],M).
maxeven([X|R],M):- Rest is X mod 2,
isRest(Rest, X, M, R).
isRest(0,X,M,[List]):- X > M,
maxeven(List,X).
isRest(0,X,M,[List]):- X < M,
maxeven(List,M).
isRest(Rest,X,M,[List]):- maxeven(List,M).
Он собирается бросить член каждую петли и проверить, если это даже, если после этого проверить, если это созидатель, чем уже назначено значение M. проблема в том, что для первого вызова isRest
предикат значение M
пуст, поэтому он всегда возвращает false. Я не знаю, какое значение я могу присвоить этой переменной в первый раз, когда этот алгоритм будет работать со всеми числами.
Спасибо, Вы мне очень помогли – kuldarim