Maximieren nach einer Funktion

Ich versuche, eine Funktion zu schreiben, die eine Funktion und zwei Eingaben akzeptiert und das Argument zurückgibt, mit dem die Funktion maximiert wird. Dies ist das Setup, das ich verwenden möchte:

max :: Eq a => (a -> Int) -> a -> a -> a 

Zum Beispiel sollte die Funktion wie folgt funktionieren:

maximize (+3) 5 10 = 10

Weil (3 + 5) <(3 + 10)

Ich denke, ich muss so etwas tun:

maximize :: Eq a => (a -> Int) -> a -> a -> a
maximize f x y = max (f x) (f y)

Dieser Ansatz scheint jedoch nicht zu funktionieren. Vielen Dank für jede Hilfe!

Antworten auf die Frage(8)

Ihre Antwort auf die Frage