Saya tahu lebih banyak tentang struktur data yang berfungsi murni dari pada struktur data memori eksternal, tetapi saya akan mencobanya.
B-tree dapat ditulis dengan fungsi murni dengan menyalin path. Path akan pendek ( ), tetapi menyalin setiap blok membutuhkan menulis dalam blok.O ( logBn )O ( B )O ( 1 )
Jika Anda ingin membiarkan struktur menjadi persisten sepenuhnya, dan bukan murni fungsional, saya pikir Anda dapat mengurangi jumlah penulisan dalam salinan node ke diharapkan diamortisasi, di mana adalah lebar kata, menggunakan array yang sepenuhnya persisten di "Tries yang Terus-menerus Bertahan untuk Kontrol Versi yang Efisien"O ( lgw )w
Anda mungkin ingin menonton presentasi ini tentang RethinkDB , yang menggunakan struktur data murni fungsional karena biaya penulisan dalam SSD.