Encontre o número máximo máximo em uma lista no prólogo

Estou tentando encontrar o número máximo em uma lista. Sei que existem várias soluções disponíveis on-line, mas sinto que a melhor maneira de aprender é implementar por conta própria.

Eu escrevi o seguinte código:

max([X],X).
max([H|T],Res):-
    (  H >= Res
    -> max(T,Res1), Res1 = H
    ;  max(T,Res)
    ).

Alguém pode apontar o meu erro? Eu não sou capaz de descobrir isso.

questionAnswers(2)

yourAnswerToTheQuestion