持久性數據結構取決於共享結構以提高效率。有關示例,請參閱here。序列化持久性/功能性數據結構
當我序列化數據結構並將它們寫入文件或數據庫時,如何保持結構共享?如果我只是天真地遍歷數據結構,我會存儲正確的值,但是我將失去結構共享。我希望能夠將具有共享組件的數據結構保存到文件中,恢復它們,並且仍然可以在恢復的數據中共享大部分結構。
持久性數據結構取決於共享結構以提高效率。有關示例,請參閱here。序列化持久性/功能性數據結構
當我序列化數據結構並將它們寫入文件或數據庫時,如何保持結構共享?如果我只是天真地遍歷數據結構,我會存儲正確的值,但是我將失去結構共享。我希望能夠將具有共享組件的數據結構保存到文件中,恢復它們,並且仍然可以在恢復的數據中共享大部分結構。
你想要某種形式的散列表。這個問題已經得到很好的研究。 Andrew Kennedy的paper on pickler combinators詳細解釋瞭如何序列化和反序列化,同時保持共享。
我可以想到兩種明顯的方法,它們是相關的。
這些選項之間進行選擇取決於你想怎麼優化,以及你期望在實踐中看到什麼類型聯動。