In meinem Programm, erstelle ich eine Liste von Zahlen:Haskell - Array Schreiben ohne eckige Klammern Datei
data = [2,3,2,5,2,7,2,3,2,11 ... ]
Jetzt mag ich in einem diese Liste von Zahlen als einzeilige kommagetrennte Zeichenfolge schreiben Datei. Ich weiß, ich writeFile
kombiniert mit Show
verwenden:
writeFile "data.txt" $ show $ data
Dies wird jedoch auch die eckigen Klammern am Anfang und Ende drucken. Jetzt konnte ich die ersten und letzten Zeichen aus der Zeichenkette Show data
mit reverse
entfernen, aber das ist ineffizient. Irgendwann durchläuft das Programm bereits die Liste, um die Zeichen in die Datei zu schreiben. Wie kann ich also sicherstellen, dass es nicht die ersten und letzten Zeichen schreibt, ohne eine unnötige Traversierung durchzuführen?
Wird dies die Aufgabe am effizientesten erledigen?
writeFile "data.txt" $ drop 1 $ takeWhile (\c -> c/= ']') $ show data
Recht sind Sie über die 'data'. Daran hatte ich beim Schreiben des Pseudocodes nicht gedacht. – Myridium