Zum Beispiel möchte ich die Zahlen aus einer Liste extrahieren, die in 67 enden: 1.637.767, 9967, 523.467 ...Wie filtere ich Zahlen, die mit anderen Zahlen in Haskell enden?
Antwort
sie 100 Vergleich Modulo:
let result = filter ((== 67) . (`mod` 100)) numbers
Die anderen Antworten, wenn alle arbeiten Sie wollen eine 2-digit
Nummer übereinstimmen. Hier ist eine verallgemeinerte Lösung:
import Data.List (isSuffixOf)
extractSuff :: Int -> [Int] -> [Int]
extractSuff n xs = filter (\x -> isSuffixOf (show n) (show x)) xs
EDIT:
Nach Guvante Vorschlag, ich bin eine andere Lösung hinzugefügt, die keine Zahlen nicht stringify.
extractSuff' :: Int -> [Int] -> [Int]
extractSuff' n xs = filter (\x -> n == (x `mod` (10^(numDigits n)))) xs
where numDigits n
| abs n < 10 = 1
| otherwise = 1 + numDigits (n `div` 10)
Ich dagegen würde empfehlen, Sie gehen davon aus, dass die bereitgestellte Zahl keine führenden Nullen hat (da' Int' nicht speichern kann '067' es nur' speichern kann 67 ') und du zeichnest, was die Performance schmerzt. – Guvante
@Guvante, ich habe meine Antwort aktualisiert, um eine Lösung hinzuzufügen, die keine Zahlen enthält. Ich verstehe deine erste Aussage über führende Nullen jedoch nicht. Kannst du es weiter erklären? –
Wenn ich '[1037, 137, 2037]' '' '[1037, 2037]' 'wie würde ich das mit' extractSuff' machen? Beachten Sie, dass, wenn Sie niemals führende Nullen benötigen, dies kein Problem ist, aber wenn Sie dies tun, wird dies komplexer. (Beachte, dass das, was ich erwähne, erfordert, zu entscheiden, wie man mit '37' im obigen Beispiel umgeht). – Guvante
- 1. Haskell. Zahlen in Binärzahlen.
- 2. Excel Wenn Zahlen mit "00" enden
- 3. Haskell - Verwandle Buchstaben in Zahlen
- 4. Erläuterung der Zahlen in Haskell
- 5. Umgang mit großen Zahlen in Haskell
- 6. Wie filtere ich Zeilen in einem Datenrahmen, die ganze Zahlen in einer Spalte haben
- 7. Warum einige Java-Methoden in Kernbibliotheken mit Zahlen enden?
- 8. Haskell Cofrime negative ganze Zahlen?
- 9. die Befugnisse der Zahlen in Haskell mit foldl Hinzufügen
- 10. Haskell: Wie filtere ich eine Liste?
- 11. Was bedeutet es, wenn Zahlen mit U enden
- 12. Große Zahlen negativ werden in Haskell
- 13. Hinzufügen von zwei komplexen Zahlen in Haskell
- 14. Repräsentiere die Reihenfolge der tetraedrischen Zahlen in Haskell
- 15. Parse Zeichenkette mit Zahlen in ganze Zahlen
- 16. Wie lese ich aus einer Datei und füge die Zahlen in die Textdatei in Haskell ein
- 17. Haskell spuckt falsche Zahlen zufällig aus
- 18. Haskell erzeugt alle Kombinationen von n Zahlen
- 19. Schwierigkeiten haben, arbeiten die anderen Zahlen feinen
- 20. CUDA - Wie arbeite ich mit komplexen Zahlen?
- 21. Wie schreibe ich Zahlen in Datei eins unter anderen?
- 22. Ich habe Zahlen in einer Zeichenfolge. Wie setze ich die Zahlen auf eine hashmap?
- 23. Wie filtere ich diese Zeichenfolge in PHP?
- 24. zu römischen Zahlen konvertieren int, nur enden, wenn Null eingegeben
- 25. Zahlen, die mit 3 enden, haben mindestens ein Vielfaches mit allen Einsen
- 26. Wie kann ich umkehren Zahlen mit Schleife
- 27. Typ Zweideutigkeit mit Zahlen
- 28. Wie Zahlen in Java
- 29. Wie die mehreren ganzen Zahlen
- 30. Haskell - Versuche, eine Funktion auf Zeilen mit mehreren Zahlen anzuwenden
'' ('mod' 100)' ' –