Ich muss alle geraden Zahlen von String
Eingang finden.Erhalten gerade Zahlen von String und Summe
Ich habe es geschafft, alle geraden Zahlen aufzulisten, aber ich verstehe nicht genau, wie ich danach die Summe dieser geraden Zahlen bekommen kann.
numbers :: String -> [Int]
numbers [] = []
numbers (l:ls) = if ord l == 48 || ord l == 50 || ord l == 52 || ord l == 54 || ord l == 56
then (ord l - 48): (numbers ls)
else (numbers ls)
So wäre das Ergebnis so etwas wie: "ABC1234" => 6
Haskell zu schreiben, hat eine Funktion 'sum' . Wenn Sie die geraden Zahlen (und nicht die Zeichenfolgendarstellung dieser Zahlen) in einer Liste haben, summieren Sie einfach die Liste. Ich verstehe nicht, warum das ein Problem ist. Sicher haben Sie gesehen, wie man Listen summiert. In der Regel wird eines der allerersten Beispiele einer rekursiven Funktionsdefinition in Haskell eine sein, die Listen summiert (wenn Sie die eingebaute "Summe" nicht verwenden wollen). –
Sie führen auch die Filterfunktion neu ein. – chepner