Я думаю, что ответ был дан совершенно ясно.
Ну, я просто немного заключу из вашего примера. Здесь мы можем «предположить», что есть два правила:
max(X, Y, Max) :- X >= Y, !, Max = X.
max(X, Y, Max) :- Max = Y.
Зачем это надо ставить !
? Это потому, что без этого вы можете запросить что-то вроде max(5,4,Max)
и результат будет
Max = 5;
Max = 4;
Почему это происходит? Потому что система Пролог находит всевозможные ответы. Когда придет !
, он перестанет находить других.