La documentazione per ref mostra l'opzione: max-history e afferma che "gli arbitri accumulano la storia dinamicamente secondo necessità per far fronte alle richieste di lettura. " Posso vedere che c'è una cronologia al REPL, ma non vedo come trovare i valori precedenti di un ref:
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
Presumibilmente il mondo ha avuto i valori "ciao", "meglio" e "meglio !!!". Come posso accedere a quella cronologia?
Se non è possibile accedere a quella cronologia, esiste un tipo di dati che conserva una cronologia dei suoi valori che può essere interrogata in seguito? O è per questo che è stato creato il database datomico?