Gepostet: |
Probleme mit Laziness und Monaden | ||||||||||
Hallo, ich versuche gerade hinter Monaden zu kommen und stolpere dabei über folgendes Problemchen.
Ziel ist es eine CSV-Datei auszulesen, Zeilenumbrüche in Listen zu verwandeln und dann irgendwas damit zu tun. Wenn ich in die Datei 3 Zeilen eintrage greift das take 2 zwar nur 2 Listeneinträge heraus, das print current_line verrät aber, dass er auch die letzte Zeile auswertet. Wie müssen Funktionen aufgebaut sein um die Laziness von ByteString weiter zu reichen? Grüße r2 |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo, es gibt die ByteString-Variante Data.ByteString.Lazy, die Chunks lazy aus der Datei liest. Allerdings ist dort die Funktion hGetLine nicht implementiert, du bekommst immer nur 64K-Blöcke lazy gelesen. Du müsstest also mittels hGetContents den Dateiinhalt lesen und dann mit den "normalen" Listenfunktionen aus ByteString selbst die Zeilen aufspalten. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||