Die Dokumentation für ref zeigt eine Option: max-history und besagt, dass "refs den Verlauf dynamisch akkumulieren, wenn dies erforderlich ist, um Leseanforderungen zu erfüllen". Ich kann sehen, dass es bei der REPL einen Verlauf gibt, aber ich sehe nicht, wie ich frühere Werte einer Referenz finden kann:
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
Vermutlich hatte die Welt die Werte "Hallo", "besser" und "besser !!!". Wie greife ich auf diesen Verlauf zu?
Wenn es nicht möglich ist, auf diesen Verlauf zuzugreifen, gibt es einen Datentyp, der einen Verlauf seiner Werte speichert, der anschließend abgefragt werden kann? Oder wurde deshalb die Datendatenbank erstellt?