Haskell'deki sabit diskten büyük bir grafik yapısı okumak istiyorum. grafik yapısı aşağıdaki gibidir:Haskell tembel açık ve yakın dosyaları
Her düğüm bir tanım var- Bir dosya açıklayan neyi çocuklar ve nasıl Data.Serialize
kullanarak (Bu grafikler serileştirildiğini bağlı olan her düğüm çocuk sahibi olabilir
Yani eğer.. Ben belleğe bu Haskell kullanarak grafiği ve yükü hareket edebilecektir olmak istiyorum
. Ben dizin A
(<X>.node
dosyaları ve dizinleri formunda) A
düğümün çocukları içeren olabilir dosyayı A.node
var ve unserialize sadece gerekli Yani, örneğin, grafiğiyolunda(B
, A
çocuktur, vs.), Haskell, A.node
, A/B.node
ve A/B/C.node
dosyalarını okumalıdır. Grafiği bir sonraki seferde, dosyalar NOT tekrar okunmalıdır, çünkü biz zaten yaptık.
Bunu en iyi şekilde nasıl yapabilirim?
Tembel olarak okunan dosyaların içeriğini mi yoksa sadece gerektiğinde dosyayı mı açmak istiyorsunuz? – bennofs
Mümkünse dosyayı açıp kapatmak istiyorum. –
Ne yapmak istersin? Dosya içeriğini önbelleğe almak mı istiyorsunuz, başka bir deyişle, daha önceden okunduğunda dosyayı tekrar okumaya mı gerek yok? Çünkü bu tür bir şey yapmaya çalışıyorsan, bana kötü bir fikir gibi geliyor. Muhtemelen [borular] (http://hackage.haskell.org/package/pipes) veya [conduit] (http://hackage.haskell.org/package/conduit) gibi bir şey kullanmak istersiniz – bennofs