0 Daumen
134 Aufrufe

Ich versuche, eine einzeilige Funktion zu schreiben, in die man eine Zahl und eine Liste eingibt, und die den höchsten Wert zurückgibt.

Zum Beispiel:

Input:

getMax 5 [1,4,7]
Output:

7
Hier ist mein aktueller Code:

getMax :: (Ord a) => a -> [a] -> a
getMax f xs = foldr max f xs
Nun möchte ich meine Funktion so erweitern, dass ich statt einer Zahl eine Anonyme-Funktion eingeben kann, die verglichen werden soll.

Zum Beispiel:

Input:

getMax (\x -> mod x 5) [1,4,7]
Output:

4
Aber ich kann es nicht zum Funktionieren bringen.

Ich erhalte eine Fehlermeldung:

No instance for (Show (Integer -> Integer))
was ich nicht wirklich verstehe.

Ich habe versucht, die Typsignatur zu ändern, aber das hat nicht geholfen.

Vielen Dank im Voraus!

von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
1 Antwort
0 Daumen
0 Antworten
0 Daumen
1 Antwort

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community