Tôi muốn đọc cấu trúc biểu đồ lớn từ đĩa cứng trong Haskell. Cấu trúc đồ thị trông như thế này:Các tập tin mở và đóng của Haskell lười biếng
Mỗi nút đã có một định nghĩa - một tập tin mô tả những đứa trẻ là gì và làm thế nào họ kết nối (các đồ thị được serialized sử dụng Data.Serialize
Mỗi nút có thể có con Vì vậy, nếu.. tôi đã có tập tin A.node
tôi có thể có thư mục chứa A
trẻ em của A
nút (theo hình thức <X>.node
tập tin và thư mục).
tôi muốn để có thể đi qua biểu đồ này sử dụng Haskell và tải vào bộ nhớ và unserialize chỉ cần Vì vậy, nếu tôi ví dụ đi qua biểu đồ theo cách của A->B->C
(trong đó B
là con của A
v.v.), thì Haskell sẽ đọc các tệp A.node
, A/B.node
và A/B/C.node
. Lần sau tôi duyệt qua biểu đồ, các tệp cần NOT được đọc lại, vì chúng tôi đã làm nó rồi.
Làm cách nào để tôi thực hiện điều này một cách tốt nhất?
Bạn có muốn nội dung của các tệp đang được đọc không cần thiết hay chỉ mở tệp khi cần? – bennofs
Tôi muốn mở và đóng tệp một cách lười biếng nếu có thể. –
Bạn muốn làm gì? Bạn có muốn lưu trữ nội dung tệp, tức là không đọc lại tệp khi nó đã được đọc chưa? Bởi vì kiểu này nếu bạn đang cố gắng làm âm thanh như một ý tưởng tồi với tôi. Bạn có thể muốn sử dụng một cái gì đó như [ống] (http://hackage.haskell.org/package/pipes) hoặc [ống dẫn] (http://hackage.haskell.org/package/conduit) – bennofs