The dokumentasi untuk ref menunjukkan sebuah: Opsi max-sejarah dan menyatakan bahwa "ref menumpuk sejarah dinamis yang diperlukan untuk menangani tuntutan membaca." Saya dapat melihat bahwa ada riwayat di REPL, tetapi saya tidak melihat bagaimana menemukan nilai-nilai ref sebelumnya:
user=> (def the-world (ref "hello" :min-history 10))
#'user/the-world
user=> (do
(dosync (ref-set the-world "better"))
@the-world)
"better"
user=> (let [exclamator (fn [x] (str x "!"))]
(dosync
(alter the-world exclamator)
(alter the-world exclamator)
(alter the-world exclamator))
@the-world)
"better!!!"
user=> (ref-history-count the-world)
2
Agaknya dunia telah memiliki nilai "halo", "lebih baik", dan "lebih baik !!!". Bagaimana cara mengakses riwayat itu?
Jika tidak mungkin untuk mengakses riwayat itu, apakah ada tipe data yang menyimpan riwayat nilai-nilainya yang dapat ditanyakan sesudahnya? Atau mengapa database datomic dibuat?