Find max integer in einer Liste in prolog

Ich versuche, die maximale Anzahl in einer Liste zu finden. Ich weiß, dass online mehrere Lösungen zur Verfügung stehen, aber ich bin der Meinung, dass der beste Weg, um zu lernen, darin besteht, diese selbst umzusetzen.

Ich habe den folgenden Code geschrieben:

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

Kann jemand auf meinen Fehler hinweisen? Ich kann es nicht herausfinden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage