Ich versuche max'
Fehler mit sehr einfacher Implementierung Liste Max Mit Falten
max' :: (Ord a) => [a] -> a
mit foldl
zu implementieren (Leider LYAH nicht Übungen zu haben scheint, so mache ich sie nach oben).
Also, ich einen Lambda-Einnahme zweier ganzer Zahlen schreiben kann und die maximale Rückkehr:
(\x y -> if x > y then x else y) 2 3
und ich kann foldl
eine Liste, um es mit:
foldl (\x y -> if x > y then x else y) 2 [2, 3, 4, 1]
So ging ich davon aus, dass, was ich brauche, ist :
max' :: (Ord a) => [a] -> a
max' xs = foldl (\x y -> if x > y then x else y) (head xs) (tail xs)
Aber die obigen Zeilen nicht mit:
Use foldl1
Found:
foldl (\ x y -> if x > y then x else y) (head xs) (tail xs)
Why Not:
foldl1 (\ x y -> if x > y then x else y) xs
Ich mag würde fragen:
Was ist das Problem in diesem Fall ist?
Wie kann ich zukünftige Fehler von Nachrichten dieses Typs herausfinden?
Es ist kein Fehler, verwenden kann, ist es ein hlint Vorschlag sagen: „Ihre Umsetzung völlig in Ordnung ist, während sie verbessert werden kann von blah blah ". – zakyggaps
@zakyggaps Ahhh, das macht jetzt so viel Sinn. Danke vielmals! –