Ich möchte eine große Grafikstruktur von der Festplatte in Haskell lesen. Die Graphstruktur sieht wie folgt aus:Haskell faul Öffnen und Schließen von Dateien
Jeder Knoten hat eine Definition bekam - eine Datei beschreiben, was die Kinder sind und wie sind sie verbunden (diese Graphen sind serialisiert Data.Serialize
mit
Jeder Knoten Kinder haben Also, wenn.. ich habe Datei bekam A.node
ich A
Verzeichnis haben Kinder von A
Knoten (in Form von <X>.node
Dateien und Verzeichnisse) enthält.
ich möchte diese Grafik in der Lage sein mit Haskell und Last-Speicher zu durchqueren und unserialize nur benötigt, Wenn ich zum Beispiel das Diagramm in der Art vondurchquere(wobei B
Kind von A
usw. ist), dann sollte Haskell die Dateien A.node
, A/B.node
und A/B/C.node
lesen. Das nächste Mal, wenn ich das Diagramm durchquere, sollten die Dateien NICHT wieder gelesen werden, weil wir es schon getan haben.
Wie kann ich das am besten machen?
Wollen Sie Inhalte der Dateien lesen, die gerade gelesen werden oder nur die Datei öffnen, wenn sie benötigt werden? – bennofs
Ich möchte die Datei faul öffnen und schließen, wenn es möglich ist. –
Was möchten Sie tun? Möchten Sie den Inhalt der Datei zwischenspeichern, d. H. Die Datei nicht erneut lesen, wenn sie bereits gelesen wurde? Denn diese Art von Dingen, die du versuchst zu tun, klingt für mich wie eine schlechte Idee. Sie möchten wahrscheinlich etwas wie [pipes] (http://hackage.haskell.org/package/pipes) oder [conduit] verwenden (http://hackage.haskell.org/package/conduit) – bennofs