La documentation de ref montre une option: max-history et déclare que "les refs accumulent l'historique dynamiquement selon les besoins pour traiter les demandes de lecture." Je peux voir qu'il y a de l'historique au REPL, mais je ne vois pas comment trouver les valeurs précédentes d'une référence:
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
Vraisemblablement, le monde a eu les valeurs "bonjour", "mieux" et "mieux !!!". Comment accéder à cette histoire?
S'il n'est pas possible d'accéder à cet historique, existe-t-il un type de données qui conserve un historique de ses valeurs qui peut être interrogé par la suite? Ou est-ce pour cela que la base de données datomic a été créée?